Linux

允許使用者讀取日誌文件的最安全方法是什麼?

  • November 2, 2021

我的應用程序需要對/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/>

引用自:https://serverfault.com/questions/258827