其實(shí),passwd命令所對應(yīng)的可執(zhí)行文件就擁有SetUID權(quán)限。
[root@localhost tmp]# ll /usr/bin/passwd-rwsr-xr-x. 1 root root 25980 2月 22 2012 /usr/bin/passwd可以發(fā)現(xiàn),/usr/bin/passwd的文件所有者的執(zhí)行權(quán)限是小寫字母s(如果是大寫字母S,就有問題) ,這就說明該可執(zhí)行文件擁有SUID權(quán)限。正是因?yàn)槿绱?,普通用戶才能更改自己的密碼,普通用戶更改自己的密碼時,身份臨時變?yōu)槌売脩魊oot,所以才能將密碼變更寫入/etc/shadow(權(quán)限為000)的文件。
cat 命令沒有SUID權(quán)限,所以普通用戶不能查看 /etc/shadow 文件的內(nèi)容。要想讓普通用戶也能使用cat命令查看 /etc/shadow 文件,可給cat命令賦予SUID權(quán)限。
數(shù)字4代表SUID,給一個可執(zhí)行文件(一般為命令)設(shè)置SUID權(quán)限的方法有兩種:
chmod 4755 文件名chmod u+s 文件名常見用法:
給cat命令賦予SUID權(quán)限:chmod 4755 /bin/cat或chmod u+s /bin/cat刪除SUID權(quán)限的方法也有兩種:
chmod 755 文件名chmod u-s 文件名常見用法:
chmod u-s /bin/cat刪除cat命令的SUID權(quán)限作為一名合格的linux系統(tǒng)管理員,必須定期對系統(tǒng)中默認(rèn)應(yīng)該具有SUID權(quán)限的可執(zhí)行文件進(jìn)行列表,并定期檢查是否有新的可執(zhí)行文件被設(shè)置了SUID權(quán)限。
千萬不要對vi命令或vim命令設(shè)置SUID權(quán)限,否則,所有的普通用戶都能使用vi命令編輯一些特殊文件(如/etc/passwd),進(jìn)而將自己的UID改為0(普通用戶就會擁有超級用戶root的所有權(quán)限),甚至對整個系統(tǒng)安全造成更加嚴(yán)重的災(zāi)難。
locate命令就具有SGID權(quán)限。
[root@localhost ~]# ll /usr/bin/locate-rwx--s--x. 1 root slocate 31492 3月 12 2015 /usr/bin/locate可以發(fā)現(xiàn),locate命令的所屬組的執(zhí)行權(quán)限是小寫字母s。
[root@localhost etc]# ll /var/lib/mlocate/mlocate.db-rw-r-----. 1 root slocate 2310094 12月 2 08:17 /var/lib/mlocate/mlocate.db數(shù)字2代表SGID,設(shè)置SGID權(quán)限的方法有兩種:
chmod 2755 文件或文件夾名chmod g+s 文件或文件夾名刪除SGID權(quán)限的方法有兩種:
chmod 755 文件或文件夾名chmod g-s 文件或文件夾名對于可執(zhí)行文件,設(shè)置SGID權(quán)限也是一種很危險的操作。應(yīng)該盡量避免人為地給可執(zhí)行文件賦予SGID權(quán)限,并定期檢查系統(tǒng)中可能存在的SGID權(quán)限的文件,列出清單以供排查。
Linux系統(tǒng)中默認(rèn)就具有SBIT權(quán)限的目錄是 /tmp 目錄。
[root@localhost etc]# ll -d /tmpdrwxrwxrwt. 5 root root 4096 1月 27 17:12 /tmp可以發(fā)現(xiàn),/tmp目錄的執(zhí)行權(quán)限是小寫字母t。
數(shù)字1代表SBIT,設(shè)置SBIT權(quán)限的方法有兩種:
chmod 1755 目錄名chmod o+t 目錄名刪除SBIT權(quán)限的方法有兩種:
chmod 777 目錄名chmod o-t 目錄名新聞熱點(diǎn)
疑難解答
圖片精選