1、SetUID(危險)
SetUID的功能(缺一不可)
- 只有可以執行的二進制程序才能設定SUID權限
- 命令執行者要對該程序擁有x(執行)權限
- 命令執行者在執行程序時獲得該程序文件屬主的身份(在執行程序的過程中靈魂附體爲文件的屬主)
- SetUID權限只在該程序執行過程中有效,也就是說身份改變只在程序執行過程中有效。
舉例
-
passwd命令擁有SetUID權限,所以普通用戶可以修改自己的密碼。
# ll /usr/bin/passwd -rwsr-xr-x.1 root root 25980 2月 22 2012 /usr/bin/passwd
注:其中所有者權限中出現了一個r,是屬於靈魂附體,命令執行過程中變爲root。
-
cat命令沒有SetUID權限,所以普通用戶不能查看/etc/shadow文件內容。
# ll /bin/cat -rwxr-xr-x 1 root root 47976 6月 22 2012 /bin/cat
設定SetUID的方法
4代表SUID
- chmod 4755 文件名
- chmod u+s 文件名
取消SetUID的方法
- chmod 755 方法
- chmod u-s 文件名
危險的SetUID
- 關鍵目錄應嚴格控制寫權限。比如"/"、"/usr"等。
- 用戶密碼設置要嚴格遵守密碼三原則
- 對系統中默認應該具有SetUID權限的文件作一列表,定時檢查沒有這之外的文件被設置了SetUID權限。
2、SetGID
SetGID針對文件的作用
- 只有可執行的二進制程序才能設置SGID權限。
- 命令執行者要對程序擁有x(執行)權限。
- 命令執行在執行程序的時候,組身份升級爲該程序文件的屬組。
- SetGID權限同樣只在該程序執行過程中有效,也就是說組身份改變只在程序執行過程中有效。
設定SetGID
2代表SUID
- chmod 2755 文件名
- chmod g+s 文件名
取消SetGID
- chmod 755 文件名
- chmod g-s 文件名
3、Sticky BIT
SBIT粘着位作用
- 粘着位目前只對目錄有效。
- 普通用戶對該目錄擁有w和x權限,即普通用戶可以在此目錄擁有寫入權限。
- 如果沒有粘着位,因爲普通用戶擁有w權限,所以可以刪除此目錄下所有文件,包括其他用戶建立的文件。一但賦予了粘着位,除了root可以刪除所有文件,普通用戶就算擁有w權限,也只能刪除自己建立的文件,但是不能刪除其他用戶建立的文件。
設置與取消粘着位
設置粘着位:
- chmod 1755 目錄名
- chmod o+t 目錄名
取消粘着位:
- chmod 777 目錄名
- chmod o-t 目錄名
總結
數字 | 設置 |
---|---|
4 | SetUID |
2 | SetGID |
1 | Sticky BIT |