AWStats:/var/log/apache2/access.logにアクセスできません


14

私は新しいUbuntu Lucidサーバーにawstatsをインストールしましたが、cronがユーザーとして実行しようとするとwww-data、そのことを訴えcannot access /var/log/apache2/access.log: Permission deniedます。

/usr/share/doc/awstats/README.Debian、この段落があります:

デフォルトでは、Apacheはuid = rootおよびgid = admのログファイル(バージョン1.3.22-1以降)を保存するため、次のいずれかを行う必要があります...

1)/etc/logrotate.d/apacheのログファイルの権限を変更して、www-dataが少なくとも読み取りアクセスできるようにします。

2)1)と同じですが、特定のユーザーに変更し、ApacheのsuEXEC機能を使用して同じユーザーとして実行します(および/ var / lib / awstatsの権限も変更するか、別のディレクトリを使用します)。これはより複雑ですが、ログは一般的にサーバーにアクセスできません(おそらくApacheのデフォルトのポイントでした)。

3)awstats.plをグループadmに変更します(ただし、マシンの管理スタッフへのCGIスクリプトアクセスを許可するリスクを負うことに注意してください!)。

私は1で行きますが、付与する推奨される許可は何ですか?


それが動作する場合は、この、カント約束をしてみてくださいchown www-data:www-data <yourFile>、その後chmod 655 <yourFile>
theTuxRacer

1
awstatsを動作させるにはchmod 755 /var/log/apache2、とchmod 644 access.logで十分ですが、「これは最高の実用性です」と答えたいのですが:)
ジョリル

私はあなたが#1に行くのが正しいと思います(他に何かawstatsが必要としない限り、読み取りアクセスだけで)。これにより、制限されたユーザーアカウントへのアクセスが許可されますが、それ以上のアクセスは許可されません。
-belacqua

回答:


8

ポイント1に進み、www-dataに少なくとも読み取り許可が必要であると言われた場合、推奨されるのは読み取り専用です。

次の行を変更できます(logrotateファイル内):

create 640 root adm

create 644 root adm

すべてのユーザー(www-dataを含む)に読み取り権限を付与します。

この設定に一致するように、/ var / log / apache2 /内の既存のファイルのパーミッションを変更する必要があります。

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

その後、すべてのファイルをすべてのユーザーが読み取ることができ、logrotateが将来作成するすべてのファイルには、adecuateパーミッションが付与されます


2
また、「すべてのユーザー」が「/ var / log / apache2 /」を調べることができるようにするには、次のようにします
。chmod

6

ほとんどのセットアップで:

  • awstatsは、Apacheユーザーwww-dataとして実行されます。
  • apacheログファイルはroot:admによって所有され、 -rw-r -----(別名:chmod 640)パーミッションがあります。そして
  • 所有権と許可の設定は、ファイル /etc/logrotate.d/apache2にあります。その内容は次のとおりです。

    /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 }
    

最も簡単な解決策は次のとおりです。

1)お気に入りのテキストエディターを使用して/etc/logrotate.d/apache2でcreate 640 root adm」を「create 644 root adm」に変更するか、すべてをスクリプト化する必要がある場合:

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

2)/var/log/apache2/access.logおよび/var/log/apache2/error.logの権限を644に変更します。

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

3)Apacheを再起動します。

sudo apachectl -k graceful

ソリューションとしてadmユーザーグループにwww-dataを追加する人々を見てきました。これは、私が慣れているよりもはるかに多くのwww-dataのアクセス許可です。

他のより安全なオプションには、awstats用の新しいユーザーとグループを作成し、この新しいユーザー/グループとしてawstatsを実行/実行することが含まれます。


さらに別の解決策は、グループ/var/log/apache2とその下のすべてを変更しwww-data、ファイルをグループで読み取り可能にすることです。これは、それらを誰でも読めるようにするよりも少し許容度が低くなります。
Reinierポスト
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.