เพียงเพื่อขยายคำตอบข้างต้นเล็กน้อยนี่เป็นกรณีการใช้งานจริง ฉันเรียกใช้โปรแกรมวิเคราะห์บันทึกองค์กร Splunk บนกล่อง Redhat มันทำงานภายใต้ผู้ใช้และกลุ่ม Splunk วิธีนี้ป้องกันการเข้าถึงไฟล์บันทึกใน / var / log เนื่องจากไฟล์เหล่านั้นเข้าถึงได้โดย root เท่านั้น (หรือผู้ดูแลระบบ sudo)
เพื่ออนุญาตให้เข้าถึงแบบอ่านอย่างเดียวสำหรับ splunk เท่านั้นฉันได้ใช้ ACL's และ logrotate ที่แก้ไขแล้วเพื่อคงไว้
คุณสามารถตั้งค่า ACL ด้วยตนเองได้
sudo setfacl -m g:splunk:rx /var/log/messages
สิ่งนี้จะไม่คงอยู่เนื่องจาก logrotate จะไม่ใช้การตั้งค่า ACL อีกครั้งดังนั้นสำหรับวิธีแก้ไขปัญหาที่ถาวรยิ่งขึ้นฉันได้เพิ่มกฎเพื่อ logrotate เพื่อรีเซ็ต ACL ฉันเพิ่มไฟล์ ..
/etc/logrotate.d/Splunk_ACLs
กับ
{
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
}
ตรวจสอบสถานะ ACL ของไฟล์ด้วย
$ getfacl /var/log/messages
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ ACL กรุณาดูที่
https://help.ubuntu.com/community/FilePermissionsACLs
http://bencane.com/2012/05/27/acl-using-access-control-lists-on-linux/