snmpd.conf:无法执行脚本(权限被拒绝)

snmpd.conf:无法执行脚本(权限被拒绝)

我正在尝试执行命令通过 snmp 进行检查。

我使用的是 Debian 6.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,所有者是 root:root,位于 /tmp 文件夹中。无论如何,此脚本是由 root 用户执行的,不是吗?所以 700 应该足够了吗?这让我觉得,即使出现此错误消息,这看起来也不像是权限问题。

我希望有人遇到过这个问题,并能给我一些建议:/

非常感谢您的建议:)

答案1

您说脚本位于/tmp;您的/tmp分区noexec是否已安装?这可能会偶尔引起混淆。

答案2

snmpd 也可能使用与 root 不同的帐户运行。

通过执行执行“id”的测试脚本进行检查。

答案3

不确定这是否正是您的问题。我们遇到了同样的问题,但使用的是extend,其中 name 是必需的,而 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

相关内容