扩展 snmp 代理如何通过 shell 或 python 读取文本文件?允许我因读取文件错误而被拒绝

How can extended snmp agent read text file via shell or python? Gives me permission denied for reading file error

我有一个 python 脚本,它读取文本文件的最后一行(位于 /home/anas/projects 位置)并打印它。文本文件每行包含一个浮点值。当我从终端 运行 这个 python 脚本时,它工作正常。 我遇到的问题是我想将此脚本与 snmp 一起使用。所以我使用了 snmp extend 并添加了

extend    snmp-datarate /usr/bin/python2.7 /usr/local/bin/snmp-feedback.py

在/etc/snmp/snmpd.conf 文件中。当我 运行 这个命令时

snmpwalk -v2c -c public 127.0.0.1 NET-SNMP-EXTEND-MIB::nsExtendObjects

它给了我以下错误,
NET-SNMP-EXTEND-MIB::nsExtendOutLine."snmp-datarate".4 = STRING: OSError: [Errno 13] 权限被拒绝:'/home/anas/projects'

现在我认为它可能是因为使用了 python 所以我也尝试了 shell 脚本,将其命名为 snmp-agra-datarate.sh,里面只有两行代码

#!/bin/bash
echo $( tail -n 1 /home/anas/projects/6780-log.txt )

运行 来自终端的这个脚本产生了预期的输出。然后我用

扩展了 snmp
extend    datarate      /usr/local/bin/snmp-agra-datarate.sh

然后当我再次尝试 运行 snmp 时。我得到类似的错误
NET-SNMP-EXTEND-MIB::nsExtendOutLine."datarate".2 = STRING: tail: 无法打开 '/home/anas/projects/6780-log.txt' 进行读取:权限被拒绝

为了使用扩展 snmp 代理 python 或 shell 读取外部文本文件,我是否遗漏了什么?
-我正在使用 ubuntu 16.04 LTS 和 net-snmp v5.8
- python 和 shell 脚本都具有执行权限。 (我做了 chmod 755)
-文本文件也有所有权限

错误信息

权限被拒绝:'/home/anas/projects'

指向该目录的权限。如果限制太多, 那么 snmpd 就不能进去了。

要解决问题,请执行

ls -ld /home/anas/projects

这会给你一个线索。