Linux下Wheel用戶組介紹


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

 

 

[oracle@DB-Server ~]$ more /etc/redhat-release 
Red Hat Enterprise Linux Server release 5.7 (Tikanga)
[oracle@DB-Server ~]$ su - root
Password: 
su: incorrect password
[oracle@DB-Server ~]$ 

 

 

clip_image001[6]

 

 

后面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用戶報密碼錯誤的情況

 

 

[root@DB-Server ~]# groups oracle
oracle : oinstall dba
[root@DB-Server ~]# cat /etc/pam.d/su

 

 

 

clip_image002[6]

 

 

 

Wheel組概念 

 

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

 

 

為什么需要wheel組?

 

通常在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" 那一行記錄。

 

 

參考資料:

 

 

https://unix.stackexchange.com/questions/116529/i-cant-login-as-root-with-su-command-but-i-can-with-ssh

 

http://www.2cto.com/os/201310/251533.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM