web-dev-qa-db-ja.com

パスワードなしのsudoを使用したmuninプラグインの「Sudo:notttypresent」

Ubuntu Linuxサーバー(Amazon EC2上)で何かを監視するためのmuninのプラグインを書いています。プラグインでは、Sudoを介してプログラム/usr/sbin/rabbitmqctlを実行する必要があります。

/etc/sudoersに次の行があります。

munin ALL = NOPASSWD: /usr/sbin/rabbitmqctl list_queues

ご覧のとおり、muninユーザー(スクリプトを実行するユーザー)は、パスワードなしでSudo経由でコマンド/usr/sbin/rabbitmqctl list_queuesを実行できます。 Sudo -u munin -sで動作することを確認し、実行しています。

ただし、muninログ(/var/log/munin/munin-node.log)には、次のようなプラグインの出力がたくさんあります。

2013/06/28-11:35:26 [28107]     Sudo: no tty present and no askpass program specified

そして、グラフにはデータがありません。

/etc/sudoersファイルの最後に、これがあります。これは、一般的に解決策として提案されています。

Defaults    !requiretty

しかし、それはそれを修正しません。 「/ etc/sudoersのその行のコメントを解除する」という一般的な提案は、そのファイルに何も含まれていないため、機能しません。

MuninプラグインがSudoを介して何かを呼び出せるようにする方法はありますか?

更新№1:muninプラグインはサーバー上のmunin-nodeによって実行されます。これはmuninユーザーとして実行されます。すべてをrootとして実行するようにすべてのmuninを変更することはできません。

2
Rory

これは特定の質問に対する答えではありませんが、特定の問題に対する解決策です。

Sudoを使用するのではなく、他のmuninプラグインが行うことを実行し、特定のプラグインを実行するユーザーをrootにオーバーライドします。

詳細情報 ここ

このようなセクションを追加します、

[<plugin name>]
user <user>
group <group>

to munin-node の中に plugin-conf.dディレクトリ(通常は/etc/munin)。

Muninプラグインのいくつかはすでにrootとして実行されているため、muninを実行する準備ができている場合、これはすでに標準的な方法です。

2
EightBitTony