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


15

我注意到正在创建的邮件日志是/var/log由root(用户和组)创建和拥有的。我写了一个Nagios检查来监视日志,为了允许Nagios用户访问它,我给了other组读取权限,即:

chmod o+r /var/log/maillog

现在,当我考虑它时,这只是一个日志文件,当日志文件被填满时,日志旋转机制将重命名该文件并打开一个新maillog文件,但是新文件将没有read write我允许的文件。

所以我的问题是,如何确保日志轮换机制将为Nagios用户创建具有正确权限的所有新mailllog文件?

提前致谢

Answers:


21

logrotate可以create选择:

create mode owner group

旋转后立即(在运行postrotate脚本之前)立即创建日志文件(与刚旋转的日志文件同名)。 mode指定日志文件的模式(八进制)(与chmod(2)相同),owner指定拥有日志文件的用户名,group指定日志文件所属的组。可以省略任何日志文件属性,在这种情况下,新文件的那些属性将使用与原始日志文件相同的值作为被省略的属性。可以使用nocreate选项禁用此选项。

的更多信息man logrotate

像这样使用它:

/var/log/maillog {
....
        create 664 user group
....
}

无论是在/etc/logrotate.conf或单独的文件/etc/logrotate.d和检查,如果没有其他的文件已经覆盖此。如何配置取决于您的操作系统(例如,在Ubuntu上,这在rsyslog配置中处理)。


如何配置将仅/var/log/maillog使用所需的用户权限创建以后的日志文件,而不更改已应用于邮件日志的任何默认设置?
Itai Ganot 2014年

请参阅我的编辑和阅读man logrotate(并查看/etc/logrotate.conf/etc/logrotate.d查看大量示例)。
斯文

2
@ItaiGanot您还应该修复syslog配置,以便它具有适当的权限来创建文件,而不是执行初始chmod。
珍妮·D

@JennyD,谢谢,这意味着我应该/var/log/maillog从中删除该行,/etc/logrotate.d/syslog以便进行设置/etc/logrotate.conf
Itai Ganot 2014年

2
@ItaiGanot不!这意味着您应该找出正在使用的系统日志程序(可能是syslog-ngrsyslog)并更改其配置。这是必要的,因为当系统重新启动或由于其他原因重新启动syslog程序时,它可能会使用错误的权限重新创建文件。
珍妮D
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.