限制一般 user 變成 root

說明文件

  • man pam
  • pinfo pam

在 Linux 下,系統預設大家都可以變成超級使用者-root,玩過 Unix-Like 的人,也都知道 root 的權限之大。

有一天,小弟在一個偶然的機會裡,能有機會管理 FreeBSD 系統,結果發現不是每個人都是可以變成 root 的,也就是說,不是每個人都可以使用 su 轉換成別人的帳號,如果要可以使用 su 的功能,就必需為 wheel 的群組。

後來想一想,雖然 FreeBSD 有那麼一點點的不方便,但相對的,也是增加了一些安全的機制。而 Linux 現在也可以使用這種機制,限制非 wheel 的 group 都無法使用 wheel,然而,這就要使用 pam 的機制來幫我們實現了。現在我們就來看看如何讓這種機制在 Linux 中也可以使用!

讓系統中的人員中,只有 steven 才能使用 su。

編輯 /etc/pam.d/su,並把 pam_wheel.so 引用進來。

[root@rhel pam.d]# vi /etc/pam.d/su
_____________________________________________________
auth required /lib/security/$ISA/pam_wheel.so use_uid
:____________________________________________________
 

不用重開,什麼都不用,立既生效!不信的話,使用 steven 帳號看看是否還有能力變成 root 或其它帳號!

[steven@rhel steven]$ su - test
Password:
su: incorrect password
[steven@rhel steven]$ su -
Password:
su: incorrect password
[steven@rhel steven]$

看到了吧,就算變成一般的 test 或是 root 都無法讓你登入。

那麼要如何讓 steven 可以使用 su 呢?其實只要把 steven 加入 wheel 群組就可以了!

[root@rhel pam.d]# usermod -G wheel steven

Try again!看看 steven 是不可以使用 su 來切換使用者身份!

[steven@rhel steven]$ su -
Password:
[root@rhel root]#

看,這不就過了嗎?

雖然這樣是有點麻煩,但是確可以讓系統多了一些安全機制,其實安全性與方便是成反比的,越方便就越不安全,然而在不同的主機上,端看管理者如何去應用了。

 
Index