我注意到正在创建的邮件日志/var/log
是由 root(用户和组)创建和拥有的。我编写了一个 Nagios 检查来监控日志,为了允许 Nagios 用户访问它,我授予该other
组读取权限,即:
chmod o+r /var/log/maillog
现在当我想到它时,这只是一个日志文件,当日志文件被填满时,日志轮换机制将重命名此文件并打开一个新文件,但新文件maillog
将不具有read write
我允许的内容。
所以我的问题是,如何确保日志轮换机制将为 Nagios 用户创建具有正确权限的所有新 mailllog 文件?
提前致谢
答案1
logrotate
有以下create
选项:
create mode owner group
旋转后(运行 postrotate 脚本之前)立即创建日志文件(与刚刚旋转的日志文件同名)。
mode
以八进制指定日志文件的模式(与 chmod(2) 相同),所有者指定拥有日志文件的用户名,组指定日志文件所属的组。可以省略任何日志文件属性,在这种情况下,新文件的这些属性将使用与原始日志文件相同的值作为省略的属性。可以使用 nocreate 选项禁用此选项。
更多信息请见man logrotate
。
使用方式如下:
/var/log/maillog {
....
create 664 user group
....
}
/etc/logrotate.conf
或单独的文件中/etc/logrotate.d
,并检查是否没有其他文件已经覆盖此文件。如何配置取决于您的操作系统(例如,在 Ubuntu 上,这是在配置中处理的rsyslog
)。