天天看點

Linux下Wheel使用者組介紹

昨天遇到一個很奇怪的事情,有一台伺服器在使用su - root指令切換到root賬号時,老是報密碼不正确。但是root密碼完全是正确的,而且可以使用賬号密碼直接ssh登入伺服器。很是納悶,如下所示:

Linux下Wheel使用者組介紹

後面Google搜尋了一些資料,然後測試、驗證後才弄明白了具體原因。在Linux中為了更進一步加強系統的安全性,很有必要建立了一個管理者的組,隻允許這個組的使用者來執行“su -”指令登入為root使用者,而讓其他組的使用者即使執行“su -”、輸入了正确的root密碼,也無法登入為root使用者。在UNIX和Linux下,這個組的名稱通常為“wheel”。而這個是在配置檔案/etc/pam.d/su裡面配置的。如下截圖所示:

"auth   required     pam_wheel.so use_uid"    表示禁止非wheel組使用者切換到root。是以就出現了上面在oracle使用者下切換root使用者報密碼錯誤的情況

Linux下Wheel使用者組介紹

<b>Wheel組概念</b> 

Wheel組是Unix系統一個遺留物。當伺服器需要做比日常例行維護更進階的工作的時候,就經常需要用到root權限了。而這個wheel組就是建立用來歸納一些特殊的系統使用者用的,這其中的使用者都或多或少地擁有root的部分功能和權限。也就是說如果你不是wheel組成員,那就沒有root身上任何的特權。也因為這樣,使用wheel組成員使用者的話,會盡量減少對系統“摧毀性”破壞的機率和風險。如今大多數的Linux發行版本中,仍然保留了wheel這個組,雖然它已經不像當初設計出來的那樣必要了,但是有些老玩家還是忠于這種舊式經典風格的,是以他們經常還是依舊讓wheel組發揮着以往的作用。他們是這樣做的:在建立他們自己的使用者時,将其添加入wheel組中(用wheel組作為使用者的主組),或者使用vigr來編輯/etc/group檔案,将他們的使用者名追加到wheel組那行的末尾。

<b>為什麼需要wheel組?</b>

<b> </b>

通常在UNIX下,即使我們是系統的管理者,也不推薦用 root 使用者登入來進行系統管理。一般情況下用普通使用者登入,在需要 root 權限執行一些操作時,再 su 登入成為 root 使用者。但是,任何人隻要知道了 root 的密碼,就都可以通過 su 指令來登入為 root 使用者——這無疑為系統帶來了安全隐患。是以,将普通使用者加入到 wheel 組,被加入的這個普通使用者就成了管理者組内的使用者,但如果不對一些相關的配置檔案進行配置,這個管理者組内的使用者與普通使用者也沒什麼差別——就像警察下班後,沒有帶槍、穿這便衣和普通人(使用者)一樣,雖然他的的确确是警察。這個對于系統安全确實很有幫助。

1:檢視wheel組

[root@DB-Server ~]# cat /etc/group | grep wheel

wheel:x:10:root

[root@DB-Server ~]# groups oracle  --檢視某個使用者的使用者組

oracle : oinstall dba

2:檢查日志發現那些做了su切換的日志資訊。

[root@DB-Server ~]#  grep su /var/log/secure | grep -v sudo

Jun 20 11:32:46 DB-Server su: pam_unix(su-l:session): session opened for user oracle by root(uid=0)

Jun 20 11:32:53 DB-Server su: pam_unix(su-l:auth): authentication failure; logname=root uid=500 euid=0 tty=pts/2 ruser=oracle rhost=  user=root

Jun 20 11:33:07 DB-Server su: pam_unix(su-l:auth): authentication failure; logname=root uid=500 euid=0 tty=pts/2 ruser=oracle rhost=  user=root

Jun 20 11:33:20 DB-Server su: pam_unix(su-l:session): session closed for user oracle

[root@DB-Server ~]#

解決方法也很簡單,要麼将對應的賬号加入wheel組,要麼注釋掉配置檔案/etc/pam.d/su中的"auth   required     pam_wheel.so use_uid" 那一行記錄。

<b>參考資料:</b>

<a href="https://unix.stackexchange.com/questions/116529/i-cant-login-as-root-with-su-command-but-i-can-with-ssh">https://unix.stackexchange.com/questions/116529/i-cant-login-as-root-with-su-command-but-i-can-with-ssh</a>

<a href="http://www.2cto.com/os/201310/251533.html">http://www.2cto.com/os/201310/251533.html</a>

繼續閱讀