Centos

以非 root 使用者身份執行 ipmitool

  • February 8, 2012

我想在無頭 CentOS6 伺服器上監控一些與硬體相關的數據。更具體地說,諸如電壓、風扇速度、熱數據之類的東西……

由於伺服器是無頭的,因此我發現最好的方法是通過一個 php 腳本來ipmitool以一種很好的方式格式化結果。

當然,網路伺服器使用者不是 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

當我以網路伺服器身份登錄時。

我在這里和那裡搜尋了一下,並對 感興趣devfs.rules,但它似乎在 CentOS6 上不存在,而且我也不熟悉與 mount/dev相關的東西。

誰能指出我正確的方向?

/dev/ipmi*通常僅限於您發現的root。ipmitool您作為非 root 使用者執行的選項是(按我個人喜好的粗略順序):

  1. 使用sudo(您可以在 sudoers 中專門為那些應該被允許執行 ipmitool 的人創建一個條目,如果您不想也給他們通常不受限制的 sudo 訪問權限)
  2. 修改您的udev規則,以便其他使用者/組可以訪問該設備(我不知道 udev 規則在 CentOS 6 上保存在哪裡,但在 /etc 下查看適合該法案的內容)。這與編輯的方法相同devfs.rules- CentOS 文件將引導您朝著正確的方向前進,這個頁面(或一些創造性的Google搜尋)將幫助您了解 udev 語法。(我會給你指點,但我自己幾乎不熟悉它:x)
  3. 通過網路連接到 IPMI 介面(如果您的 IPMI 介面支持)。

這可能需要燒錄網路介面和交叉電纜,或者將 IPMI 卡連接到您的網路,這就是它在列表中如此低的原因。 4. 製作ipmitoolsetuid-root。

(是的。不要那樣做。這通常是一個壞主意和糟糕的建議——假裝我沒有提到它。)

引用自:https://serverfault.com/questions/358158