Назад | Перейти на главную страницу

Rsyslog не устанавливает права на чтение и запись для группы и всех

Rsyslog игнорирует права чтения и записи, установленные с помощью fileCreateMode для группы и всех.

Я настроил службу для запуска моего приложения узла как такового:

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

Затем я устанавливаю файл myapp.conf в /etc/rsyslog.d/ следующим образом

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 не выдает ошибок

Если ваш rsyslogd запускается системой systemd, тогда определение вашего сервиса, /usr/lib/systemd/system/rsyslog.service, вероятно, содержит ограничение UMask:

UMask = 0066

Это нарушит любую конфигурацию в rsyslogd.conf, относящуюся к маскам и режимам.