NRPEを使用するnagiosプラグイン(check_aacraid.py)をデバッグしようとしています。問題のシステムは、新しいセットアップのCentOS6.2ファイルサーバーです。
私に問題を与えているように見えるコマンドは次のとおりです。
for line in Popen(["/usr/bin/sudo", "/usr/bin/arcconf", "GETCONFIG", "1", "LD"],
stdin=PIPE, stdout=PIPE, close_fds=True).stdout:
'nagios'ユーザーとしてスクリプトを実行すると、正常に動作します。NRPE / XINETDから呼び出された場合、失敗します(NRPEは「出力を読み取れません」と報告します-usuはエラーを示します)。
straceを使用してxinetdの出力を監視し、次のことを発見しました。
7706 execve("/usr/bin/sudo", ["/usr/bin/sudo", "/usr/bin/arcconf", "GETCONFIG", "1", "AD"], [/* 15 vars */]) = -1 EACCES (Permission denied)
問題があるかどうかを調べようとしています:
-python
-sudo
-nagios
-xinetd
-other
私はsudoの問題を探し回って、stdを実行しました(「requiretty」をコメントアウトし、パスを設定し、「NOPASSWD」でnagiosユーザーを追加します)。まだ問題を発見していません。
他のコマンドはNRPE('check_user'など)を介して正常に実行されます。
注:これは、nagios用に公開され確立されたプラグインです。このシステムで何か問題が発生したため、機能していません。
提案?
質問への回答:
1)「nagios」としてログインするとアプリを実行できます。
2)'visudo'を使用すると、次のエントリがあります:' nagios ALL =(ALL)NOPASSWD:ALL'-
はい、セキュリティホールです。これがうまくいったら締めます。
3)/ usr / bin/sudoの権限は---s--x--xです。2ルートルート2151445月9日23:59/usr / bin / sudo
SELinuxが問題のようです。'echo 0> / selinux / enforce'の場合、アプリは正しく実行されます。今度は、それを回避するのではなく、それを操作する方法を理解します。@Josh-これを回答として投稿してください。喜んで受け入れます。