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


15

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

chmod o+r /var/log/maillog

Тепер, коли я замислююся над цим, це лише один файл журналу, коли файл журналу заповниться, механізм повороту журналу перейменує цей файл і відкриє новий, але новий maillogфайл не матиме read writeдозволеного мені.

Отже, моє запитання полягає в тому, як я можу переконатися, що механізм обертання журналу створить усі нові файли mailllog з правильними дозволами для користувача Nagios?

Спасибі заздалегідь

Відповіді:


21

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


Як я можу налаштувати, що лише /var/log/maillogмайбутні файли журналу створюватимуться з потрібними дозволами користувача, не змінюючи жодних налаштувань за замовчуванням, які вже застосовані до поштового журналу?
Ітаї Ганот

Дивіться мій редагувати і читати man logrotate(і подивитися на /etc/logrotate.confі /etc/logrotate.dдля багатьох прикладів).
Свен

2
@ItaiGanot Ви також повинні виправити конфігурацію syslog, щоб він створив файл з належним дозволом, а не робити початковий chmod.
Jenny D

@JennyD, Дякую, це означає, що я повинен видалити /var/log/maillogрядок, /etc/logrotate.d/syslogщоб відбулися налаштування /etc/logrotate.conf?
Itai Ganot

2
@ItaiGanot Ні! Це означає, що вам слід з’ясувати, яку програму syslog ви використовуєте (можливо, syslog-ngабо rsyslog) або змінити її конфігурацію. Це необхідно, тому що при перезавантаженні системи або перезапуску програми syslog з якоїсь іншої причини вона може заново створити файл з неправильним дозволом.
Дженні Д
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.