
我想授予特定(常規)使用者grep
存取我的郵件日誌的權限 ( /var/log/maillog*
)。
我不准備更改日誌權限,因為它們應該保留root
為 -only,所以我認為首選解決方案是通過sudoers
.
另外:我想授予盡可能少的其他權限,理想情況下用戶只能存取郵件日誌(和輪換檔案)。
例如:
username ALL= NOPASSWD: /bin/grep
基本上允許該用戶grep
存取系統上的任何文件,這是我想避免的。
這裡最好的解決方案是什麼?
僅供參考:它本身不需要grep
:使用者只需要對郵件日誌的讀取存取權限,並且可能僅用於grep
存取它們。
答案1
您可以對檔案使用 acl 來授予使用者讀取權限
setfacl -m user:grepuser:r /var/log/maillog*
這是允許用戶使用他們想要的任何工具的優點。
這對於郵件日誌來說也是安全的 logrotate*
答案2
除非您知道用戶將搜尋哪些特定字串以及他們將檢查使用的特定文件,否則sudo
這不是一個好的解決方案。如果您建立這樣的規則:
blizz ALL=root NOPASSWD: /bin/grep * /var/log/maillog*
用戶將能夠運行如下命令:
grep root /etc/shadow /var/log/maillog
grep = /root/my.cnf /var/log/maillog
他們將能夠讀取系統上的任何檔案。您可以在此處找到有關此問題的更多資訊:
http://blog.csnc.ch/2012/10/dangerous-sudoers-entries-part-4-wildcards/
如果您知道使用者將檢查哪些字串和文件,您可以為每個場景定義單獨的規則。例如:
Cmnd_Alias MAILLOGA = /bin/grep 'Connection refused' /var/log/maillog
Cmnd_Alias MAILLOGB = /bin/grep 'Connection refused' /var/log/maillog.1
Cmnd_Alias MAILLOGC = /bin/grep 'imap-login' /var/log/maillog
Cmnd_Alias MAILLOGD = /bin/grep 'imap-login' /var/log/maillog.1
blizz ALL=root NOPASSWD: MAILLOGA, MAILLOGB, MAILLOGC, MAILLOGD
但是,這可能很麻煩,並且可能導致 sudo 配置過大。
或者,grep
您可以透過命令授予他們對文件的存取權限more
,然後他們可以互動式地搜尋文件:
Cmnd_Alias MAILLOG = /bin/more /var/log/mailllog
Cmnd_Alias MAILLOG1 = /bin/more /var/log/mailllog.1
Cmnd_Alias MAILLOG2 = /bin/more /var/log/mailllog.2
Cmnd_Alias MAILLOG3 = /bin/more /var/log/mailllog.3
blizz ALL=root NOPASSWD: MAILLOGA, MAILLOGB, MAILLOGC, MAILLOGD
但是,這不允許使用者保留其搜尋記錄(例如.bash_history
)或建立自己的搜尋腳本或別名。另外,如果您進行了日誌輪換,他們將無法解析壓縮日誌。
筆記:不要授予 sudo 對該less
命令的存取權限。使用者可以突破該進程,例如運行!/bin/bash
inless
會給他們系統的 root 存取權。
另一種選擇是為他們制定cat
文件規則,以便他們可以grep
按照自己的意願透過管道傳輸文件。例如:
sudo cat /var/log/maillog | grep "anything can go here"
最後,最簡單也可能是最好的解決方案是透過更改日誌檔案的權限來授予他們對日誌的讀取存取權。你可以這樣做:
groupadd logcheck
chgrp logcheck /var/log/maillog*
chmod g+r /var/log/maillog*
useradd -G logcheck blizz
然後他們可以使用任何他們想要分析文件的工具(例如grep
,,,,,zgrep
等)。less
more
view
答案3
這應該按預期工作蘇多爾斯文件:
%users ALL= /bin/cat /var/log/mail.log
%users ALL= /bin/cat /var/log/mail.err
(來自 Ubuntu 的日誌路徑,如有必要請更改)
使用通用的、僅輸出的工具,例如貓簡單又安全。您不必像以下那樣允許和限制特定選項grep直接在 sudoers 中。它還將允許使用任何過濾日誌grep 或不工具,即。awk,sed。
不知道如何須藤在CentOS中配置,但如果提示輸入密碼呼叫用戶(不屬於目標用戶),我會避免使用無密碼WD。如果任何敵對方在不知道使用者密碼的情況下存取使用者帳戶,這可能是安全優勢。