web-dev-qa-db-ja.com

root以外のユーザーとしてipmitoolを実行する

ヘッドレスCentOS6サーバーでハードウェア関連のデータを監視したいと思います。より具体的には、電圧、ファン速度、熱データなど。

サーバーはヘッドレスであるため、これを行うための最良の方法は、ipmitoolからの結果を適切な方法でフォーマットするphpスクリプトを使用することです。

もちろん、Webサーバーのユーザーはrootではないので、それは悪いことです。残念ながら、root以外のユーザーには/dev/ipmi*にアクセスする権限がないようです。これも理にかなっています。

ipmitool -U "someUser" -P "somePassword" sdrを実行すると、rootとして期待される読み取り値が得られますが、

Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No such file or directory
Get Device ID command failed
Unable to open SDR for reading

webサーバーとしてログインしているとき。

あちこちで少し検索してdevfs.rulesに興味がありましたが、CentOS6には存在しないようで、/dev関連のものをマウントすることに慣れていません。

誰かが私を正しい方向に向けることができますか?

5
Silver Quettier

/dev/ipmi*は通常、あなたが見つけたルートのみに制限されています。 root以外のユーザーとしてipmitoolを実行するためのオプションは、(私の個人的な好みの大まかな順序で)次のとおりです。

  1. Sudoを使用します(一般的に無制限のSudoアクセスも許可したくない場合は、ipmitoolのみの実行を許可する必要があるユーザー専用にsudoersにエントリを作成できます)

  2. udevルールを変更して、別のユーザー/グループがデバイスにアクセスできるようにします(udevルールがCentOS 6のどこに保持されているかはわかりませんが、/ etcの下で適切なものを探してください)。これは、devfs.rulesを編集するのと同じアプローチです-CentOSのドキュメントは正しい方向に導き、 このページ (またはいくつかの創造的なグーグル)はudev構文を支援します。 (私はあなたにポインタを与えるでしょうが、私はそれについてほとんど精通していません:x)

  3. ネットワーク経由でIPMIインターフェースに接続します(IPMIインターフェースがこれをサポートしている場合)。
    これには、ネットワークインターフェイスとクロスケーブルの書き込み、またはIPMIカードのネットワークへの接続が必要になる場合があります。そのため、リストの下位にあります。

  4. ipmitoolsetuid-rootを作成します。
    (ええ。そうしないでください。それは一般的に悪い考えであり、ひどいアドバイスです。私が言及しなかったふりをしてください。)

6
voretaq7