Solusi 1:
Hanya untuk memperluas sedikit jawaban di atas di sini adalah kasus penggunaan dunia nyata. Saya menjalankan aplikasi analisis log perusahaan Splunk pada kotak Redhat. Ini berjalan di bawah pengguna splunk dan grup splunk. Ini mencegah splunk mengakses log di /var/log karena hanya dapat diakses oleh root (atau sudo admin)
Untuk mengizinkan akses hanya baca untuk splunk saja, saya telah menggunakan beberapa ACL dan logrotate yang dimodifikasi untuk mempertahankannya.
Anda dapat menyetel ACL secara manual dengan
sudo setfacl -m g:splunk:rx /var/log/messages
Ini tidak akan bertahan karena logrotate tidak akan menerapkan kembali pengaturan ACL jadi untuk solusi yang lebih permanen saya menambahkan aturan ke logrotate untuk mengatur ulang ACL. Saya menambahkan file..
/etc/logrotate.d/Splunk_ACLs
dengan
{
postrotate
/usr/bin/setfacl -m g:splunk:rx /var/log/cron
/usr/bin/setfacl -m g:splunk:rx /var/log/maillog
/usr/bin/setfacl -m g:splunk:rx /var/log/messages
/usr/bin/setfacl -m g:splunk:rx /var/log/secure
/usr/bin/setfacl -m g:splunk:rx /var/log/spooler
endscript
}
Periksa status ACL file dengan
$ getfacl /var/log/messages
Untuk info lebih lanjut tentang ACL lihathttps://help.ubuntu.com/community/FilePermissionsACLshttp://bencane.com/2012/05/27/acl-using-access-control-lists-on-linux/
Solusi 2:
Tidak perlu menambahkan root ke grup karena akan memiliki akses melalui pengguna privs, cukup berikan grup baca ke grup apa pun yang Anda putuskan. Ingatlah untuk melakukan perubahan dengan logrotate juga atau perubahan grup akan dihapus setiap malam.
Solusi 3:
Paket Anda dapat diterima dan dalam skema izin Unix "tradisional" adalah cara terbaik untuk melakukannya.
Opsi lain adalah meminta syslog mengalihkan pesan yang menarik ke file lain (yang menghindari pemberian akses pengguna aplikasi ke hal sensitif apa pun yang mungkin ada di /var/log/messages
).
Jika Anda tidak ingin terikat oleh skema izin tradisional Pengguna/Grup/Lainnya, Anda juga dapat menggunakan POSIX ACL (lainnya, mungkin howtos/info yang lebih baik tersedia melalui Google) untuk memberikan akses baca-saja kepada pengguna aplikasi Anda ke /var/log/messages
-- ini sedikit lebih detail dan tidak berisiko memasukkan orang lain secara tidak sengaja ke dalam grup aplikasi dan memberi mereka akses ke hal-hal yang seharusnya tidak dapat mereka lihat.
Solusi 4:
Ya saya sudah menggunakan setfacl
untuk melakukan ini untuk memberikan akses ke mail.log
file untuk pelanggan, bukan Anda juga perlu menempelkan perintah di logrotate.conf
file untuk mengatur ulang ACL setelah log diputar misalnya:
postrotate
/usr/bin/setfacl -m o::r /var/log/mail.log
endscript
Catatan Saya baru saja menyiapkan ini, dan belum mengujinya, tetapi meskipun akan dikirim kembali ke sini, tidak dapat melihat mengapa ini tidak berhasil, seseorang mengoreksi saya jika saya salah.