我从 cron 收到如下错误:
/etc/cron.daily/logrotate:错误:跳过“/var/log/apache2/access.log”,因为父目录具有不安全的权限(它是所有人可写的或者可由非“root”的组写入)在配置文件中设置“su”指令来告诉 logrotate 应该使用哪个用户/组进行轮换。
/var/log/apache2 目录归 拥有root
并具有 gid adm
,我认为这是应该的。 /etc/logrotate.d/apache2 是发行版的默认设置,这create 640 root adm
也指定了。
那么我应该添加su root adm
到 logrotate 文件中吗?如果我需要这样做,为什么它不在包维护版本中?
或者还有什么不对劲的地方?
根据要求编辑:
ls /var/log/apache2/ -ld
drwxrwx--- 6 root adm 24576 Nov 14 01:55 /var/log/apache2/
答案1
您应该将 /var/log/apache2/ 设置为非组可写。这将阻止 apache 在此目录中创建文件,但如果这些文件已经存在,则这样做没有问题。
$ chmod g-w /var/log/apache2
(我仍然不确定这是否正确 - 当新的虚拟主机设置了新的日志文件时会发生什么?)