假設回顯信息為 ①-②rws③r-x④r-x ⑤1 ⑥root ⑦root ⑧430540 ⑨Dec 20 18:27 ⑩/usr/sbin/passwd ,現在逐一分析其內容。
①. 首字符-,表示該文件為普通文件。
-,普通文件;
d,目錄文件;
l,符號鏈接;
c,字符設備文件;
b,字節設備文件;
p,先進先出文件;
s,套接字文件。
②. 第2~4個字符,表示所有者(owner)的權限
③. 第5~7個字符,表示所屬組(group)的權限
④. 第8~10個字符,表示其他用戶(other)的權限
⑤. 第11個字符,表示硬鏈接數
⑥. 是文件所有者的用戶名稱(owner)
⑦. 是文件所屬組的用戶組名稱(group)
⑧. 是文件大小,以塊為單位,通過 ls -lh 則會以KB,MB作單位
⑨. 是最后修改日期
⑩. 是文件或目錄的絕對路徑
從上述內容我們可以得知Linux下的權限角色有三種,分別是所有者(owner)、所屬組(group)和其他用戶(other)。
2. 權限表示形式
[a]. 符號表示法
普通權限:
r,讀權限; w,寫權限;x,可執行權限。
特殊權限:
SUID權限只能設置在②中,s表示二進制可執行文件同時擁有SUID權限和x可執行權限;S表示二進制可執行文件擁有SUID權限但沒有x可執行權限。
SGID權限只能設置在③中,s表示二進制可執行文件或目錄同時擁有SGID權限和x可執行權限;S表示二進制可執行文件或目錄擁有SGID權限但沒有x可執行權限。
SBIT權限只能設置在④中,t表示目錄同時擁有SBIT權限和x可執行權限;T表示目錄擁有SBIT權限但沒有x可執行權限。
[b]. 數字表示法
數字表示法采用二進制形式計算,八進制形式設置的方式。
二進制形式計算,1代表有權限,0代表無權限:
所有者 | 所屬組 | 其他用戶 | |||||||||
SUID | SGID | SBIT | R | W | X | R | W | X | R | W | X |
1/0 | 1/0 | 1/0 | 1/0 | 1/0 | 1/0 | 1/0 | 1/0 | 1/0 | 1/0 | 1/0 | 1/0 |
然后每三位為一組轉為八進制,例如現在二進制形式為100111101101,那么轉為八進制則為4755。
然后通過 chmod 4755 文件 就可以改變文件的權限, ls -l 回顯中權限部分則為rwsr-xr-x。
注意:1. 若不設置特殊權限時,我們可以直接省去八進制的第一位數,例如: chmod 755 文件 ;
2. 采用數字表示法設置特殊權限,僅能啟動特殊權限,卻無法關閉。例如,文件A擁有特殊權限SUID和SGID,執行 chmod 0755 文件A ,但通過 ls -l 查看權限依然為rwsr-sr-x。