AWStats: nie można uzyskać dostępu do /var/log/apache2/access.log

12

Zainstalowałem awstats na moim nowym serwerze Ubuntu Lucid, ale kiedy cron próbuje uruchomić go jako użytkownik www-data , to narzeka, że cannot access /var/log/apache2/access.log: Permission denied .

W /usr/share/doc/awstats/README.Debian jest ten akapit:

  

Domyślnie sklepy Apache (od   wersja 1.3.22-1) logów z   uid = root i gid = adm, więc musisz   albo ...

     

1) Zmień prawa do logów   w /etc/logrotate.d/apache tak, aby       www-data ma przynajmniej dostęp do odczytu.

     

2) Jako 1), ale zmień na konkretny   użytkownika i użyj funkcji suEXEC z   Apache       do uruchomienia jako ten sam użytkownik (i albo zmień prawo / var / lib / awstats   tak jak       dobrze lub użyj innego katalogu). To jest bardziej skomplikowane, ale potem   logi       nie są ogólnie dostępne dla serwera (który prawdopodobnie był   punkt       domyślnie Apache).

     

3) Zmień awstats.pl na grupę adm   (ale uważaj, że bierzesz          ryzyko zezwalania na dostęp skryptu CGI do elementów administracyjnych na komputerze   maszyna!).

Poszedłbym z 1, ale jakie są zalecane uprawnienia do przyznania?

    
zadawane Joril 14.01.2011, 09:39
źródło

2 odpowiedzi

8

Jeśli przejdziesz do punktu 1 i jest napisane, że dane www powinny mieć przynajmniej uprawnienia odczytu, to polecane jest tylko przyznanie.

Możesz zmienić linię (w pliku logrotate):

create 640 root adm

do

create 644 root adm

Dać wszystkim użytkownikom (dane www w zestawie) uprawnienia do odczytu.

Będziesz musiał zmienić uprawnienia istniejących plików w / var / log / apache2 /, aby dopasować to ustawienie

chmod a+r /var/log/apache2/* #or whatever your path is

Następnie wszystkie pliki mogą być odczytywane przez wszystkich użytkowników, a wszystkie pliki, które logrotate utworzą w przyszłości, będą miały odpowiednie uprawnienia

    
odpowiedział theist 23.02.2011, 13:24
źródło
4

W większości konfiguracji:

  • awstats działa jako użytkownik apache dane www ,
  • pliki dziennika Apache są własnością root: adm i mają -rw-r ----- (alias: chmod 640 ) uprawnienia; i
  • Ustawienia własności i uprawnień można znaleźć w pliku /etc/logrotate.d/apache2 , którego treść to:

    /var/log/apache2/*.log {
        daily
        missingok
        rotate 60
        compress
        delaycompress
        notifempty
        dateext
        create 640 root adm
        sharedscripts
        postrotate
                /etc/init.d/apache2 reload > /dev/null
        endscript }
    

Najprostszym rozwiązaniem jest:

1) Zmień " Utwórz 640 roota admina " na " utwórz 644 roota adm " w /etc/logrotate.d/apache2 używając Twój ulubiony edytor tekstu lub, jeśli musisz napisać wszystko:

sudo sed -i 's/create 640 root adm/create 644 root adm/g' /etc/logrotate.d/apache2

2) Zmień uprawnienia na /var/log/apache2/access.log i /var/log/apache2/error.log na 644 .

sudo chmod 644 /var/log/apache2/access.log /var/log/apache2/error.log

3) Zrestartuj apache.

sudo apachectl -k graceful

Widziałem ludzi, którzy dodawali dane www do grupy admatorów jako rozwiązanie. To o wiele więcej pozwoleń na dane www , niż mi się wydaje.

Inne, bardziej bezpieczne opcje obejmują tworzenie nowego użytkownika & amp; grup dla awstatów i włączanie / uruchamianie awstatów jako nowego użytkownika / grupy.

    
odpowiedział roberthernandez 15.07.2012, 16:53
źródło

Przeczytaj inne pytania na temat tagów