我通常會執行 snmptraps 和其他 net-snmp 命令,而不會出現 root 會話問題,但是當我嘗試使用普通用戶執行相同的命令時,我會收到以下錯誤:
Cannot rename /var/lib/net-snmp/snmpapp.conf to /var/lib/net-snmp/snmpapp.0.conf
Cannot unlink /var/lib/net-snmp/snmpapp.conf
read_config_store open failure on /var/lib/net-snmp/snmpapp.conf
read_config_store open failure on /var/lib/net-snmp/snmpapp.conf
read_config_store open failure on /var/lib/net-snmp/snmpapp.conf
我嘗試搜尋 .conf 文件,以向普通用戶添加所有 net-snmp 的必要權限,但我沒有找到解決此問題的確切方法。
感謝您的幫助。
答案1
我遇到過類似的問題,並透過以下討論解決了它:http://sourceforge.net/p/net-snmp/bugs/1706/。我認為問題的本質與使用非特權使用者執行 snmptrap 命令有關。在這種情況下,應透過新增以下行來建立使用者特定配置:
persistentDir /home/user/.snmp_persist
在~/.snmp/snmp.conf中
運行 snmptrap 後,您應該會看到類似以下內容的內容:
Creating directory: /home/user/.snmp_persist
我希望這有幫助。
答案2
快速瀏覽 snmptrapd 手冊頁會顯示以下內容:
注意:預設會偵聽所有 IPv4 介面上的 UDP 連接埠 162。由於 162 是特權端口,因此 snmptrapd 通常必須以 root 身份運行。
我不熟悉 snmpapp.conf,但我會先查看 /var/lib/net-snmp/snmpapp.conf 的權限。您正在運行什麼發行版?