Linux禁止非WHEEL使用者使用SU命令

wuweilong發表於2014-10-01

      通常情況下,一般使用者透過執行“su -”命令、輸入正確的root密碼,可以登入為root使用者來對系統進行管理員級別的配置。

      但是,為了更進一步加強系統的安全性,有必要建立一個管理員的 組,只允許這個組的使用者來執行“su -”命令登入為root使用者,而讓其他組的使用者即使執行“su -”、輸入了正確的root密碼,也無法登入為root使用者。在UNIX和Linux下,這個組的名稱通常為“wheel”。

一、禁止非whell組使用者切換到root
1、 修改/etc/pam.d/su配置

  1. [root@db01 ~]# vi /etc/pam.d/su ← 開啟這個配置檔案
  2. #auth required /lib/security/$ISA/pam_wheel.so use_uid ← 找到此行,去掉行首的“#”

2、 修改/etc/login.defs檔案

  1. [root@db01 ~]# echo “SU_WHEEL_ONLY yes” >> /etc/login.defs ← 新增語句到行末以上操作完成後,可以再建立一個新使用者,然後用這個新建的使用者測試會發現,沒有加入到wheel組的使用者,執行“su -”命令,即使輸入了正確的root密碼,也無法登入為root使用者
3、 新增一個使用者woo,測試是否可以切換到root
  1. [root@db01 ~]# useradd woo
  2. [root@db01 ~]# passwd woo
  3. Changing password for user woo.
  4. New UNIX password:
  5. BAD PASSWORD: it is WAY too short
  6. Retype new UNIX password:
  7. passwd: all authentication tokens updated successfull

4、透過woo使用者登入嘗試切換到root   
  1. [woo@db01 ~]$ su - root ← 即使密碼輸入正確也無法切換
  2. Password:
  3. su: incorrect password
  4. [woo@db01 ~]$

5: 把root使用者加入wheel組再嘗試切換,可以切換

  1. [root@db01 ~]# usermod -G wheel woo ← 將普通使用者woo加在管理員組wheel組中
  2. [root@db01 ~]# su - woo

  3. [woo@db01 ~]$ su - root ← 這時候我們看到是可以切換了
  4. Password:
  5. [root@db01 ~]#

二、新增使用者到管理員,禁止普通使用者su到root
6、新增使用者,並加入管理員組,禁止普通使用者su到root,以配合之後安裝OpenSSH/OpenSSL提升遠端管理安全
  1. [root@db01 ~]# useradd admin
  2. [root@db01 ~]# passwd admin
  3. Changing password for user admin.
  4. New UNIX password:
  5. BAD PASSWORD: it is too short
  6. Retype new UNIX password:
  7. passwd: all authentication tokens updated successfully.


  8. [root@db01 ~]# usermod -G wheel admin (usermod -G wheel admin 或 usermod -G10 admin(10是wheel組的ID號))
  9. [root@db01 ~]# su - admin
  10. [admin@db01 ~]$ su - root
  11. Password:
  12. [root@db01 ~]#

方法一:wheel組也可指定為其它組,編輯/etc/pam.d/su新增如下兩行
  1. [root@db01 ~]# vi /etc/pam.d/su
  2. auth sufficient /lib/security/pam_rootok.so debug
  3. auth required /lib/security/pam_wheel.so group=wheel
方法二:編輯/etc/pam.d/su將如下行#符號去掉
  1. [root@db01 ~]# vi /etc/pam.d/su
  2. #RedHat#auth required /lib/security/$ISA/pam_wheel.so use_uid   ← 找到此行,去掉行首的“#”
  3. #CentOS5#auth required pam_wheel.so use_uid   ← 找到此行,去掉行首的“#”

#儲存退出即可============
  1. [root@db01 ~]# echo "SU_WHEEL_ONLY yes" >> /etc/login.defs ← 新增語句到行末



(實際測試這步操作可省略)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20674423/viewspace-1286954/,如需轉載,請註明出處,否則將追究法律責任。

相關文章