通常、ルート セッションでは snmptraps やその他の net-snmp コマンドを問題なく実行しますが、通常のユーザーで同じコマンドを実行しようとすると、次のエラーが発生します。
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
すべての net-snmp への必要な権限を通常のユーザーに追加するための .conf ファイルを検索しようとしましたが、この問題を解決するために何をすればよいのか正確にはわかりません。
助けてくれてありがとう。
答え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 の権限を確認することから始めます。実行しているディストリビューションは何ですか? また、SNMP のフロントエンドを何か使用していますか?