Sudo

如何停止 auth.log 中特定使用者的 sudo PAM 消息?

  • February 7, 2021

我正在使用 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.

引用自:https://unix.stackexchange.com/questions/224370