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

Linux: как применить определенные разрешения для вновь созданных журналов, которые создаются путем ротации журналов?

Я заметил, что журналы почты, которые создаются в /var/log создаются и принадлежат пользователю root (пользователю и группе). Я написал проверку Nagios, которая отслеживает журнал, и чтобы позволить пользователю Nagios получить к нему доступ, я дал other групповые права на чтение, то есть:

chmod o+r /var/log/maillog

Теперь, когда я думаю об этом, это только один файл журнала, когда файл журнала будет заполнен, механизм поворота журнала переименует этот файл и откроет новый, но новый maillog файл не будет иметь read write что я разрешил.

Итак, мой вопрос: как я могу убедиться, что механизм ротации журналов создает все новые файлы почтовых журналов с соответствующими разрешениями для пользователя Nagios?

заранее спасибо

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 конфигурация).