Назад | Перейти на главную страницу

awstats «Permission Denied», но все файлы и каталоги имеют разрешение

Я получаю это уведомление от awstats:

Error while processing /etc/awstats/awstats.conf
Create/Update database for config "/etc/awstats/awstats.conf" by AWStats version 7.4 (build 20150714)
From data in log file "/var/log/apache2/access.log"...
Error: Couldn't open server log file "/var/log/apache2/access.log" : Permission denied
Setup ('/etc/awstats/awstats.conf' file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in 'docs' directory).

Однако я не вижу ничего плохого в разрешениях:

> ls -l /var/log/apache2/access.log
-rw-r--r-- 1 root adm 62438 Sep 30 09:51 /var/log/apache2/access.log
> ls -ld /var/log/apache2
drwxr-xr-x 2 root root 12288 Sep 30 06:25 /var/log/apache2/
> ls -ld /var/log
drwxr-xr-x 20 root root 4096 Sep 30 06:25 /var/log/
> ls -ld /var
drwxr-xr-x 13 root root 4096 Sep 23 14:39 /var/

Что мне здесь не хватает?

ИЗМЕНИТЬ для дополнительных разъяснений:

Эта ошибка возникает из-за задания cron awstats. Содержимое задания cron:

> cat /etc/cron.d/awstats
MAILTO=root

*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

# Generate static reports:
10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

Итак, задание выполняется пользователем www-data.

www-data должен иметь доступ для чтения к файлу; когда я бегу sudo -u www-data less /var/log/apache2/access.log работает нормально.

Требуется ли awstats разрешение на запись в файл журнала? Кажется странным, что он может понадобиться, но я не могу найти какой-либо документации, которая однозначно говорила бы мне так или иначе.

это либо:

  1. проблема пользователя (ваш процесс работает как другой пользователь, а не root, а файлы не имеют 666 или 664)
  2. проблема использования файловой системы (например, используется 100%) FS

Возможно, ваш apache не запущен с правами root: adm и процесс хочет писать в него?

проверьте, есть ли у пользователя www-data группу adm:

root @ serverweb: ~ # id www-data

uid = 1001 (www-data) gid = 1001 (www-data) groups = 1001 (www-data), 4 (adm)

в противном случае добавьте его в / etc / group:

корень @ serverweb: ~ # grep www / etc / group

adm: x: 4: www-data

www-data: x: 33: