我注意到正在/var/log中创build的邮件日志正在被root(用户和组)所创build和拥有。 我写了一个监视日志的Nagios检查,为了让Nagios用户可以访问它,我给了other组的读取权限,那就是:
chmod o+r /var/log/maillog
现在当我想到的时候,这只是一个日志文件,当日志文件被填满时,日志的旋转机制会重命名这个文件并打开一个新文件,但是新的maillog文件将不具有我允许的read right 。
所以我的问题是,我怎样才能确保日志旋转机制将创build所有新的mailllog文件与Nagios用户的权限?
提前致谢
logrotate有create选项:
create mode owner group
旋转之后(在postrotate脚本运行之前)立即创build日志文件(与刚旋转的日志文件名称相同)。
mode以八进制(与chmod(2)相同)指定日志文件的模式,owner指定将拥有日志文件的用户名,group指定日志文件将属于的组。 任何日志文件属性都可以省略,在这种情况下,新文件的属性将使用与原始日志文件相同的值作为省略属性。 该选项可以使用nocreate选项禁用。
更多信息与man logrotate 。
像这样使用它:
/var/log/maillog { .... create 664 user group .... }
在/etc/logrotate.conf或/etc/logrotate.conf一个单独的文件中,检查是否没有其他文件已经覆盖了这个文件。 如何configuration取决于你的操作系统(例如,在Ubuntu上,这是在rsyslogconfiguration中处理的)。