web-dev-qa-db-ja.com

snmpd.conf:スクリプトを実行できません(アクセスが拒否されました)

Snmpを介してチェックを実行するコマンドを実行しようとしています。

私はDebian6.0を使用しています

これが私のsnmpd.confファイルです

rwcommunity public 172.23.129.0/29
syslocation "Blah
syscontact [email protected]
sysname belleville.domain.net
sysdescr "Syslog Domain Server"

disk /

load 5 10 10

#exec 1.3.6.1.4.1.2021.8 /usr/bin/python /usr/local/domain/tools/check-syslog.py
exec 1.3.6.1.4.1.2021.8 /usr/bin/python /tmp/check-syslog.py

Snmpgetの出力は次のとおりです。

snmpget -Of -cpublic -v1 belleville 1.3.6.1.4.1.2021.8.1.101.1
.iso.3.6.1.4.1.2021.8.1.101.1 = STRING: "/usr/bin/python: can't open file '/tmp/check-syslog.py': [Errno 13] Permission denied"

ファイルの権限は711であり、所有者は/ tmpフォルダーにあるroot:rootであるため、権限の問題を理解していません。とにかく、このスクリプトはrootユーザーによって実行されますね。とにかく700で十分なはずですか?これは、このエラーメッセージがあっても、これは許可の問題のようには見えないと思います。

私は誰かがこの問題に遭遇したことがあり、私にいくつかのアドバイスを与えることができることを願っています:/

アドバイスをありがとう:)

3
philippe

スクリプトは/tmpにあるとおっしゃいました。 /tmpパーティションはnoexecにマウントされていますか?それは時折混乱の原因となる可能性があります。

2
womble

snmpdは、rootとは異なるアカウントで実行される場合もあります。

「id」を実行するテストスクリプトを実行してチェックアウトします。

2
Nils

それがまさにあなたの問題であるかどうかはわかりません。同じものに遭遇しましたが、extendがあり、名前が必要で、OIDは必要ありません。したがって、誤って構成されたsnmpは、コマンドラインの最後の部分のみを実行していました。 t実行可能ファイル。

あなたの変種:

exec 1.3.6.1.4.1.2021.8 /usr/bin/python /tmp/check-syslog.py

/usr/bin/pythonと名前を定義し、インタプリタなしで/tmp/check-syslog.pyのみを実行しようとします

拡張子名がcheck-syslogの場合は修正してください:

exec 1.3.6.1.4.1.2021.8 check-syslog /usr/bin/python /tmp/check-syslog.py
1