sudo 在某些伺服器上要求輸入密碼

sudo 在某些伺服器上要求輸入密碼

我為許多(虛擬)伺服器(主要是 debian)設定了一些 sudo 規則,供 zabbix 腳本使用:

zabbix ALL=NOPASSWD: /etc/init.d/exim4 restart

zabbix-agent 和 sudo 設定檔 ( /etc/sudoers.d/zabbix-agent) 透過 ansible 分發,並且對於所有伺服器都是相同的。

但是,在某些伺服器上,sudo 要求輸入密碼。對其他人來說則不然。無論我使用 zabbix 還是本地運行命令都是一樣的:

# sudo -u zabbix sudo /etc/init.d/exim4 restart

有時,它可以工作,有時它會要求輸入密碼。

我調查了一下,明顯的答案是 sudo 配置中的 zabbix 用戶有不同的規則,但這是不正確的。

還有哪些因素可能導致系統要求輸入密碼?

答案1

好的,有兩個錯誤來源:

  1. sudoers.d目錄未包含在/etc/sudoers.在大多數現代系統上,這是預設設置,因此只需刪除該檔案即可,但有一些舊系統最初是隨 Debian Lenny 安裝的,並保留了舊的 sudoers 檔案。
  2. 沒有安裝 exim,所以/etc/init.d/exim4它不存在。現在這在某種程度上也是一個用戶錯誤,但它也是非常蹩腳的錯誤報告對於須藤。我知道有關嘗試執行某些文件的報告可能會導致資訊洩漏(但是,sudo 配置中對該可執行文件有明確的規則,因此我不確定這是一個有效的原因),但係統確實如果我提供正確的密碼,則報告錯誤。

相關內容