Linux 權限補充_特殊權限(setuid、setgid、sticky bit)

1、特殊權限介紹

1. setuid

該權限是讓普通用戶能夠用root的角色運行只有root才能運行的程序或命令。
如:用普通用戶運行passwd命令來修改密碼,實際上最終更改的是/etc/passwd文件,咱們知道/etc/passwd文件是用戶管理的配置文件,只有root權限的用戶才能更改;ui

[root@localhost ~]# ls -l /etc/passwd
-rw-r--r-- 1 root root 2379 04-21 13:18 /etc/passwd

做爲普通用戶經過修改 /etc/passwd 來修改本身的口令確定是不可能的,可是系統中普通用戶能夠經過 passwd 命令來修改本身的口令;這主要是由於 passwd 命令的權限中添加了setuid 權限(也就是r-s--x--x中的s);因此普通用戶能臨時變成root,間接修改/etc/passwd,以達到修改本身口令的權限。code

[root@localhost ~]# ls -l /usr/bin/passwd
-r-s--x--x 1 root root 21944 02-12 16:15 /usr/bin/passwd

2. setgid

該權限只對目錄有效,目錄被設置該權限後, 任何用戶在此目錄下建立的文件都具備和該目錄所屬的組相同的組。it

3. sticky bit

該權限能夠理解爲防刪除位;一個文件是否能夠被某用戶刪除,主要取決於該文件所屬的組是否對該用戶具備寫權限。若是沒有寫權限,則這個目錄下的全部文件都不能被刪除,同時也不能添加新的文件。 若是但願用戶可以添加文件但同時不能刪除文件,則能夠對文件使用sticky bit權限; 設置該權限後, 就算用戶對目錄具備寫權限,也不能刪除該文件。配置

2、特殊權限用法

特殊權限的操做與普通權限操做的命令是同樣的,都是 chmod;權限

1. 格式

chmod u+s temp -- 爲temp文件加上setuid標誌. (setuid 只對文件有效)
chmod g+s tempdir -- 爲tempdir目錄加上setgid標誌 (setgid 只對目錄有效)
chmod o+t temp -- 爲temp文件加上sticky標誌 (sticky只對文件有效)程序

2. 八進制方式表示(777 數字樣式)

通常文件權限經過三組八進制數字來置標誌,如:666, 777, 644等;設置這些特殊權限標誌,則在這組數字以外在加一組八進制數字(如:46662777等); a b c 一組八進制數字三位的意義以下
a - setuid位, 若是該位爲1, 則表示設置setuid 4---
b - setgid位, 若是該位爲1, 則表示設置setgid 2---
c - sticky位, 若是該位爲1, 則表示設置sticky 1---密碼

3. 系統方式表示(rwx 樣式)

設置了特殊權限,能夠用 ls -l 來查看;若是有這些標誌,則會在原來的執行標誌位置上顯示。
如:
rwsrw-r-- 表示有 setuid 權限
rwxrwsrw- 表示有 setgid 權限
rwxrw-rwt 表示有 sticky 權限
原來的執行標誌x哪裏去了呢?系統規定,若是原本在該位上有x,則這些特殊標誌顯示爲小寫字母 (sst); 不然,顯示爲大寫字母 (SST)。配置文件

注意:setuid和setgid會面臨風險,因此儘量的少用!!!樣式

相關文章
相關標籤/搜索