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設定にはその実行可能ファイルの明確な規則があるため、それが正しい理由であるかどうかはわかりません)。ただし、正しい情報を提供すると、システムはそうします。パスワードを入力するとエラーが報告されます。