Sudo
如何停止 auth.log 中特定使用者的 sudo PAM 消息?
我正在使用 Zabbix 來監控我的環境,並以使用者身份每 60 秒
zabbix_agentd
執行一次自定義腳本;zabbix
它用於sudo
將此腳本作為root
.在
/var/log/auth.log
我每 60 秒看到一次:Aug 11 17:40:32 my-server sudo: pam_unix(sudo:session): session opened for user root by (uid=0) Aug 11 17:40:32 my-server sudo: pam_unix(sudo:session): session closed for user root
我想阻止這條消息淹沒我的日誌。
/etc/pam.d/sudo
我在文件之前添加了以下行session required pam_unix.so
:session [success=1 default=ignore] pam_succeed_if.so service in sudo quiet uid = 0
消息消失了。
但問題
sudo
是,當有人使用as執行腳本時,我抑制了每條 PAM 消息root
。我只想為使用者
zabbix
(不是所有其他使用者)停止消息。sudo
知道zabbix
使用者想要以root
特權執行腳本,有沒有辦法告訴 PAM?如何告訴 PAM 在使用時不要為特定使用者登錄sudo
?注意:我嘗試過濾系統日誌中的消息;雖然這可行,但它有與上述相同的問題,即它太不分青紅皂白,因為日誌消息沒有指示哪個使用者正在成為 root。
您似乎與您的 PAM conf 行非常接近:
session [success=1 default=ignore] pam_succeed_if.so service in sudo quiet uid = 0
查看手冊頁
pam_succeed_if
,我想您想測試請求使用者 (ruser
) 是zabbix
。所以我建議:
session [success=1 default=ignore] pam_succeed_if.so quiet uid = 0 ruser = zabbix
zabbix
當使用者變為root
(但沒有其他轉換)時,這將抑制下一個測試。我已經用我自己的一對使用者對此進行了測試。
uid = 0
如果您不想zabbix
成為任何使用者,而不僅僅是 root,請刪除上面的測試。我刪除了
service in sudo
測試:鑑於此行位於/etc/pam.d/sudo
.