Zainstalowałem awstats na nowym serwerze Ubuntu Lucid, ale kiedy cron próbuje uruchomić go jako użytkownik www-data
, narzeka cannot access /var/log/apache2/access.log: Permission denied
.
W /usr/share/doc/awstats/README.Debian
tam ten ustęp:
Domyślnie Apache przechowuje (od wersji 1.3.22-1) logi z uid = root i gid = adm, więc musisz albo ...
1) Zmień prawa do plików dziennika w /etc/logrotate.d/apache, aby dane www miały przynajmniej dostęp do odczytu.
2) Jak 1), ale zmień na konkretnego użytkownika i użyj funkcji suEXEC Apache, aby uruchomić go jako ten sam użytkownik (albo zmień prawo / var / lib / awstats, albo użyj innego katalogu). Jest to bardziej skomplikowane, ale wtedy dzienniki nie są ogólnie dostępne dla serwera (co prawdopodobnie było punktem domyślnym Apache).
3) Zmień awstats.pl na admina grupowego (ale uważaj, że ryzykujesz wtedy dostępem skryptu CGI do administrowania na komputerze!).
Wybrałbym 1, ale jakie są zalecane uprawnienia do udzielenia?
źródło
chown www-data:www-data <yourFile>
i wtedychmod 655 <yourFile>
.chmod 755 /var/log/apache2
ichmod 644 access.log
, ale chciałbym, żeby to była „najlepsza praktyka” - rodzaj odpowiedzi :) Dziękuję za to, że wpadliście!Odpowiedzi:
Jeśli przejdziesz do punktu 1, który mówi, że www-data powinien mieć co najmniej pozwolenie na odczyt, wówczas zalecane jest udzielenie tylko odczytu.
Możesz zmienić linię (w pliku logrotate):
do
Aby dać wszystkim użytkownikom (w tym dane www) uprawnienia do odczytu.
Będziesz musiał zmienić uprawnienia istniejących plików w / var / log / apache2 /, aby dopasować to ustawienie
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 uprawnienia adecuate
źródło
W większości konfiguracji:
ustawienia własności i uprawnień można znaleźć w pliku /etc/logrotate.d/apache2 , którego zawartość to:
Najprostszym rozwiązaniem jest:
1) Zmień „ create 640 root adm ” na „ create 644 root adm ” w /etc/logrotate.d/apache2 za pomocą swojego ulubionego edytora tekstu lub, jeśli musisz wszystko napisać:
2) Zmień uprawnienia na /var/log/apache2/access.log i /var/log/apache2/error.log na 644 .
3) Uruchom ponownie apache.
Widziałem ludzi dodających dane www do grupy użytkowników adm jako rozwiązanie. To o wiele więcej uprawnień do danych www niż czuję się swobodnie.
Inne bezpieczniejsze opcje obejmują tworzenie nowego użytkownika i grup dla awstats oraz uruchamianie / wykonywanie awstats jako nowego użytkownika / grupy.
źródło
/var/log/apache2
i wszystko pod niąwww-data
oraz sprawić, by pliki były czytelne dla grupy. Jest to nieco mniej liberalne niż uczynienie ich czytelnymi na całym świecie.