Linux:如何对日志轮换创建的新日志强制执行特定的权限?

Linux:如何对日志轮换创建的新日志强制执行特定的权限?

我注意到正在创建的邮件日志/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)。

相关内容