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 2011年

1
要使awstats正常运行就足够了chmod 755 /var/log/apache2chmod 644 access.log,但是我想要一种“这是最好的实践”之类的答案:)谢谢您的指教!
Joril 2011年

我认为您选择#1是正确的(只有读取访问权限,除非awstats需要其他功能)。这将授予对受限用户帐户的访问权限,而不会授予对除此以外的任何权限的新访问权限。
belacqua

Answers:


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
对于“所有用户”来说,他们可以
附加

6

在大多数设置中:

  • awstats以您的apache用户www-data运行
  • apache日志文件由root:adm拥有,并具有 -rw-r -----(aka: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

我见过有人将www数据添加到adm用户组作为解决方案。对www数据的权限比我所能接受的要多得多。

其他更安全的选项包括为awstats创建新的用户和组,并使awstats作为该新用户/组运行/执行。


另一个解决方案是将文件/var/log/apache2及其下的所有内容更改为组,www-data并使文件可读取。这比使它们在世界范围内可读而言要宽松一些。
Reinier 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.