除了我們前面介紹的rwx權限外,Linux中還有另外三種特殊權限:SUID,SGID,SBIT
一、SUID,SGID,SBIT介紹
1.SUID:s出現在文件所有者的x權限上。
1)SUID只能用於二進制可執行文件,對目錄無效
2)執行者若具有該文件的x權限,則將具有文件所有者的權限
3)權限只在文件執行時有效,執行完畢不再擁有所有者權限
2.SGID:s出現在文件所屬群組的x權限上。
SGID和SUID不同,可以用於目錄
1)使用者若有此目錄的x,w權限,則可進入和修改此目錄
2)使用者在此目錄下的群組將變成該目錄的群組,新建的文件,群組是此目錄的群組。
SGID對於文件來說
1)SGID只對二進制可執行文件有效
2)執行者若具有該文件的x權限,則將具有文件所屬群組的權限
3)權限只在文件執行時有效,執行完畢不再擁有所屬群組權限
3.SBIT:t出現在文件其他用戶的x權限上。
1)和SUID,SGID不同的是,只能用於目錄
2)使用者在該目錄下,僅自己與root才有權力刪除新建的目錄或文件
二、為什么要使用特殊權限
舉個例子,比如 /usr/bin/passwd 這個二進制文件。
它的權限是 -rwsr-xr-x ,我不是所有者,我具有"x"權限,我執行它時,獲得了它的所有者(即root)的權限,
所以在該二進制程序執行時,我可以用它來讀到我平時是沒有權限訪問的 /etc/shadow 文件(-r--------),從而能更改我自己的密碼
三、修改SUID,SGID,SBIT權限
1.符號類型修改權限
chmod u+s test --為test文件加上suid權限
chmod g+s test --為test文件加上sgid權限
chmod o+t test --為test文件加上sbit權限
2.數字類型修改權限
我們知道普通文件的rwx權限修改
對於特殊權限,需要在最前面增加一位,SUID:4,SGID:2,SBIT:1
chmod 4777 test --test擁有SUID權限,rwsrwxrwx
chmod 2777 test --test擁有SGID權限,rwxrwsrwx
chmod 1777 test --test擁有SBIT權限,rwxrwxrwt
