web-dev-qa-db-ja.com

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/

ここで何が欠けていますか?

より明確にするために編集:

このエラーは、awstatscronジョブによってスローされています。 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
onigame

それはどちらかです:

  1. ユーザーの問題(プロセスはroot以外のユーザーとして実行され、ファイルには666または664がありません)
  2. ファイルシステムの使用に関する問題(例:100%使用)FS
1
olivierg

おそらく、Apacheがroot:admとして実行されておらず、プロセスがそれに書き込みたいと考えていますか?

0
user9517

ユーザーwww-dataにグループadmがあるかどうかを確認します。

root @ serverweb:〜#id www-data

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

それ以外の場合は、/ etc/groupに追加します。

root @ serverweb:〜#grep www/etc/group

adm:x:4:www-data

www-data:x:33:

0
ikinose