Linux
允許使用者讀取日誌文件的最安全方法是什麼?
我的應用程序需要對
/var/log/messages
屬於 user 和 group 的讀取權限root
。/var/log/messages
我的應用程序可以讀取它所需的最低曝光級別是多少?目前,我的計劃是將組所有權更改
/var/log/messages
為一個新組,並將 root 和我的應用程序使用者添加到其中,但這也會賦予應用程序對/var/log/messages
.作業系統:數百個 5.5
無需將 root 添加到該組,因為無論如何它都可以通過使用者 privs 訪問,只需將組讀取權限授予您決定的任何組即可。請記住也要使用 logrotate 進行更改,否則組更改將在每晚被擦除。
只是為了擴展上述答案,這裡是一個真實的案例。我在 Redhat 盒子上執行企業日誌分析應用程序 Splunk。它在 splunk 使用者和 splunk 組下執行。這可以防止 splunk 訪問 /var/log 中的日誌,因為它們只能由 root(或 sudo 管理員)訪問
為了只允許對 splunk 進行只讀訪問,我使用了一些 ACL 並修改了 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/>