天天看點

網絡安全系列之十三 Linux中su與sudo的安全設定

Linux系統中的root使用者權限過大,是以在實際使用中一般都是以普通使用者的身份登入,當需要時可以切換到root使用者身份。切換使用者身份使用su指令。

但是我們可能并不希望所有使用者都能切換到root身份,而是隻想指定某個使用者可以切換,比如隻允許zhangsan使用者使用su指令切換身份。

要限制使用su指令的使用者,需要進行兩個方面的設定。

首先需要啟用pam_wheel認證子產品,

[root@server ~]# vim /etc/pam.d/su ‘将檔案中下面一行前的#去掉

auth required pam_wheel.so use_uid

這樣凡是執行“su – root”指令的使用者都将受到限制,隻有wheel組中的成員才有權限執行該指令。

因而下面需要做的就是将zhangsan加入到wheel組中。

[root@server ~]# gpasswd -a zhangsan wheel

[root@server ~]# id zhangsan

uid=501(zhangsan) gid=501(zhangsan) groups=501(zhangsan),10(wheel)

這樣,當使用一個不屬于wheel組成員的賬号切換到root時,系統便會拒絕。

例如,使用lisi切換到root,即使輸入了正确的root使用者密碼,也會提示“密碼不正确”。

[lisi@localhost ~]$ su - root

密碼:

su: 密碼不正确

利用su指令切換到root使用者,必須要輸入root使用者的密碼。對于管理者,可以先用普通使用者的身份登入系統,然後再用su指令切換到管理者賬号;而對于普通使用者如果也可以使用su指令,這很明顯不利于系統安全性,是以對于普通使用者更常使用的是sudo指令。

sudo指令的作用主要在于能夠允許經過授權的個别普通使用者以root權限執行一些授權使用的管理指令。

如以普通使用者zhangsan的身份建立使用者,會提示沒有權限:

[zhangsan@localhost ~]$ useradd test

-bash: /usr/sbin/useradd: 權限不夠

下面讓zhangsan使用sudo指令以root權限去執行指令。注意,普通使用者使用sudo執行指令時會要求提供自己的密碼進行驗證。

[zhangsan@localhost ~]$ sudo useradd test

[sudo] password for zhangsan:

zhangsan is not in the sudoers file. This incident will be reported.

zhangsan使用sudo指令仍然無法建立使用者,這是因為在Linux中隻有被授權的使用者才能執行sudo指令,而且使用sudo也隻能執行那些被授權過的指令。

是以要使用sudo指令首先必須要經過管理者的授權設定,需要修改配置檔案“/etc/sudoers”。

<a href="http://yttitan.blog.51cto.com/attachment/201410/26/70821_1414363989mBEb.png" target="_blank"></a>

<a href="http://img1.51cto.com/attachment/201212/201408599.png" target="_blank"></a>

例如:授權普通使用者zhangsan可以通過sudo方式執行所有的指令:

注意,“/etc/sudoers”是一個隻讀檔案,修改完成儲存退出時要使用“wq!”指令。

如果希望zhangsan隻能執行部分指令,可以在“/etc/sudoers”中指定zhangsan所能執行的指令的檔案路徑,指令的檔案路徑可以通過which指令查找。

例如:授權zhangsan隻能執行useradd和userdel指令。

<a href="http://s3.51cto.com/wyfs02/M02/4D/2A/wKiom1RNfR-htdPuAABxN2OrJf8416.jpg" target="_blank"></a>

zhangsan每次在執行sudo指令時都要輸入自己的密碼,為了省去普通使用者執行sudo指令時需要輸入密碼的麻煩,可以在“/etc/sudoers”進行如下設定:

<a href="http://s3.51cto.com/wyfs02/M00/4D/2B/wKioL1RNfdrwWP7FAABCTGbIeJc249.jpg" target="_blank"></a>

除了針對使用者授權之外,我們也可以對使用者組授權,這樣使用者組内的所有成員使用者就都具有了執行sudo指令的權限。如果授權的對象是使用者組,需要在組名的前面要加上“%”。

例如:授權managers組内的成員使用者可以添加、删除、更改使用者賬号。

<a href="http://s3.51cto.com/wyfs02/M00/4D/2A/wKiom1RNfazwCFJwAAB43g7g4XU062.jpg" target="_blank"></a>

本文轉自 yttitan 51CTO部落格,原文連結:http://blog.51cto.com/yttitan/1568305

繼續閱讀