Я установил awstats на свой новый сервер Ubuntu Lucid, но когда cron пытается запустить его как пользователь www-data
, он жалуется на это cannot access /var/log/apache2/access.log: Permission denied
.
В /usr/share/doc/awstats/README.Debian
этом пункте:
По умолчанию Apache хранит (начиная с версии 1.3.22-1) файлы журналов с uid = root и gid = adm, поэтому вам нужно либо ...
1) Измените права файлов журналов в /etc/logrotate.d/apache, чтобы www-данные имели как минимум доступ для чтения.
2) Как 1), но измените на конкретного пользователя и используйте функцию suEXEC Apache для запуска от имени того же пользователя (и либо измените также право на / var / lib / awstats, либо используйте другой каталог). Это более сложно, но тогда журналы, как правило, недоступны для сервера (что, вероятно, было точкой по умолчанию Apache).
3) Измените awstats.pl на группу adm (но учтите, что вы рискуете разрешить CGI-скрипту доступ к административным ресурсам на машине!).
Я бы пошел с 1, но какие рекомендуемые разрешения для предоставления?
источник
chown www-data:www-data <yourFile>
и тогдаchmod 655 <yourFile>
.chmod 755 /var/log/apache2
иchmod 644 access.log
, но я хотел бы «это лучший pratice» -kind ответа :) Спасибо за пробили в хотя!Ответы:
Если вы переходите к пункту 1, и в нем говорится, что www-данные должны иметь как минимум разрешение на чтение, тогда рекомендуется использовать только чтение.
Вы можете изменить строку (в файле logrotate):
в
Чтобы дать всем пользователям (включая www-данные) разрешение на чтение.
Вам нужно будет изменить разрешения для существующих файлов в / var / log / apache2 /, чтобы соответствовать этому параметру
Тогда все файлы могут быть прочитаны всеми пользователями, и все файлы, которые logrotate создаст в будущем, будут иметь адекватные разрешения
источник
В большинстве установок:
настройки владельца и прав доступа можно найти в файле /etc/logrotate.d/apache2 , содержимое которого:
Самое простое решение:
1) Измените « создать 640 корневых адм » на « создать 644 корневых адм » в /etc/logrotate.d/apache2, используя ваш любимый текстовый редактор или, если вам нужно все в скрипте:
2) Измените разрешения для /var/log/apache2/access.log и /var/log/apache2/error.log на 644 .
3) Перезапустите apache.
Я видел людей, добавляющих www-данные в группу пользователей adm в качестве решения. Это намного больше разрешений для www-данных, чем мне удобно.
Другие более безопасные опции включают создание нового пользователя и групп для awstats и запуск / запуск awstats в качестве этого нового пользователя / группы.
источник
/var/log/apache2
и все, что в ней,www-data
и сделать файлы читаемыми по группам. Это немного менее допустимо, чем сделать их читаемыми во всем мире.