rsyslog没有设置group和everyone的读写权限

rsyslog没有设置group和everyone的读写权限

Rsyslog 忽略使用 fileCreateMode 为组和所有人设置的读写权限。

我已经设置了一个服务来运行我的节点应用程序,如下所示:

...
[Service]
WorkingDirectory=/opt/demo/app
User=appuser
Type=simple
ExecStart=/usr/bin/node myapp.js demo
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=myapp
...

然后我在 /etc/rsyslog.d/ 中设置一个 myapp.conf 文件,如下所示

if ($programname == 'myapp') then {
    action(
        type="omfile"
        File="/opt/demo/app/app.log"
        fileCreateMode="0640"
        fileOwner="appuser"
        fileGroup="mygroup"
    )
    stop
}

日志文件使用正确的用户和组创建,但权限为 0600,而不是 0640。

如果我将 fileCreateMode 更改为 0777,那么文件将以 0711 创建。

我使用默认的rsyslog.conf,rsyslog版本是8.24.0-41,操作系统是CentOS 7.7

rsyslogd -N 1没有抛出任何错误

答案1

如果您的 rsyslogd 由 systemd 启动,那么您的服务定义 /usr/lib/systemd/system/rsyslog.service 可能包含 UMask 限制:

掩码=0066

这会破坏 rsyslogd.conf 中与掩码和模式相关的任何配置。

相关内容