Linux: Bagaimana cara menegakkan izin khusus pada log yang baru dibuat yang dibuat oleh rotate log?

15

Saya perhatikan bahwa log surat yang sedang dibuat /var/logsedang dibuat dan dimiliki oleh root (pengguna dan grup). Saya telah menulis cek Nagios yang memantau log dan untuk memungkinkan pengguna Nagios untuk mengaksesnya, saya memberi otherizin baca grup, yaitu:

chmod o+r /var/log/maillog

Sekarang ketika saya memikirkannya, ini hanya satu file log, ketika file log akan diisi mekanisme rotate log akan mengubah nama file ini dan membuka yang baru, tetapi maillogfile baru tidak akan memiliki read writeyang saya izinkan.

Jadi pertanyaan saya adalah, bagaimana saya bisa memastikan bahwa mekanisme rotate log akan membuat semua file mailllog baru dengan izin yang tepat untuk pengguna Nagios?

Terima kasih sebelumnya

Itai Ganot
sumber

Jawaban:

21

logrotatememiliki createopsi:

create mode owner group

Segera setelah rotasi (sebelum skrip postrotate dijalankan) file log dibuat (dengan nama yang sama dengan file log diputar). modemenentukan mode untuk file log dalam oktal (sama seperti chmod (2)), pemilik menentukan nama pengguna yang akan memiliki file log, dan grup menentukan grup file file log akan menjadi milik. Atribut file log apa pun dapat dihilangkan, dalam hal ini atribut untuk file baru tersebut akan menggunakan nilai yang sama dengan file log asli untuk atribut yang dihilangkan. Opsi ini dapat dinonaktifkan menggunakan opsi nocreate.

Info lebih lanjut dengan man logrotate.

Gunakan seperti ini:

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

baik di /etc/logrotate.confatau file terpisah masuk /etc/logrotate.ddan periksa apakah belum ada file lain yang menimpanya. Bagaimana ini dikonfigurasi tergantung pada OS Anda (misalnya pada Ubuntu, ini ditangani dalam rsyslogkonfigurasi).

Sven
sumber
Bagaimana saya bisa mengonfigurasi bahwa hanya /var/log/maillogfile log di masa depan yang akan dibuat dengan izin pengguna yang diinginkan tanpa mengubah pengaturan default apa pun yang sudah diterapkan ke maillog?
Itai Ganot
Melihat edit dan membaca man logrotate(dan melihat ke dalam /etc/logrotate.confdan /etc/logrotate.duntuk banyak contoh).
Sven
2
@ ItaiGanot Anda juga harus memperbaiki konfigurasi syslog Anda sehingga membuat file dengan izin yang tepat, alih-alih Anda melakukan chmod awal.
Jenny D
@ JennyD, Terima kasih, itu berarti saya harus menghapus /var/log/mailloggaris dari /etc/logrotate.d/syslogsehingga pengaturan /etc/logrotate.confakan berlangsung?
Itai Ganot
2
@ItaiGanot Tidak! Ini berarti Anda harus mencari tahu program syslog apa yang Anda gunakan (mungkin salah satu syslog-ngatau rsyslog) dan mengubah konfigurasinya. Ini diperlukan karena ketika sistem Anda di-boot-ulang, atau program syslog Anda di-restart karena alasan lain, itu mungkin membuat ulang file dengan izin yang salah.
Jenny D