2

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-これを回答として投稿してください。喜んで受け入れます。

4

1 に答える 1

1

SELinuxが問題のようです。xinetdからsudoを実行すると、permissiondeniedエラーが発生し、xinetdの外部でsudoを実行することに成功した場合、SELinuxのようなものがそれを拒否するポリシーを適用している可能性があります。

于 2012-05-11T15:00:47.220 に答える