Назад | Перейти на главную страницу

snmpd.conf: невозможно выполнить сценарий (в разрешении отказано)

Я пытаюсь выполнить команду exec для проверки через snmp.

Я использую Debian 6.0

Вот мой файл snmpd.conf

rwcommunity public 172.23.129.0/29
syslocation "Blah
syscontact admin@domain.net
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 и владелец root: root, расположенный в папке / tmp. В любом случае, этот сценарий выполняется пользователем root, не так ли? Так что 700 должно хватить в любом случае? Это заставляет меня думать, что это не похоже на проблему с разрешением, даже с этим сообщением об ошибке.

Надеюсь, кто-нибудь когда-либо сталкивался с этой проблемой и сможет дать мне несколько советов: /

Большое спасибо за любой совет :)

snmpd также может работать с другим аккаунтом, чем root.

Выезд, выполнив тестовый скрипт, который выполняет id.

Вы сказали, что сценарий находится в /tmp; твой /tmp перегородка установлена noexec случайно? Это может быть случайным источником путаницы.

Не уверен, что это именно твоя проблема. Мы столкнулись с тем же, но с extend, где имя является обязательным, а OID - нет. Таким образом, наш неправильно настроенный snmp выполнял только последнюю часть командной строки, которая не была исполняемым файлом.

Ваш вариант:

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