
Zabbix スクリプトが使用する多くの (仮想) サーバー (主に Debian) に対して、いくつかの sudo ルールを設定しました。
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
はい、エラーの原因は 2 つありました。
- ディレクトリ
sudoers.d
は に含まれていませんでした/etc/sudoers
。最近のシステムのほとんどではこれがデフォルトなので、ファイルをドロップするだけで動作しますが、元々 Debian Lenny とともにインストールされ、古い sudoers ファイルを保持している古いシステムもいくつかありました。 - eximがインストールされていないため、
/etc/init.d/exim4
存在しませんでした。これはある意味ではユーザーエラーでもありますが、非常にひどいエラー報告sudo の場合。一部のファイルの実行を試みたことを報告すると情報漏洩が発生する可能性があることは理解していますが (ただし、sudo 構成にはその実行可能ファイルに関する明示的なルールがあるため、それが正当な理由であるかどうかはわかりません)、正しいパスワードを入力するとシステムはエラーを報告します。