特殊權限
SUID,SGID,STICKY
權限匹配模型:
判斷進程的 發起者 是否爲被訪問文件的 屬主,如果是 則應用屬主的權限;
判斷進程的 發起者 是否爲陪訪問文件的 屬組,如果是 則應用屬組的權限
否則應用other
1.SUID: 可能會使普通用戶獲得root權限 危險;文件其他權限位應當有執行權限
管理文件SUID:
chmod u+|-s FILE
如果文件屬主權限爲 有執行權限顯示爲小寫s -rwsr-xr-x. FILE
沒有則爲大寫S -rwSr-xr-x. FILE
默認情況:用戶發起的進程 屬主爲當前用戶
具有SUID屬性則:用戶運行某程序時,會以該文件 屬主身份運行
普通用戶不可讀或修改/etc/shadow,但是可以運行passwd更改密碼,
相當於修改了/etc/shadow;因爲/bin/passwd屬主爲root 且具有S權限
2.SGID: 通常應用在 目錄; 目錄屬組應當有寫權限
管理目錄SGID:
chmod g+|-s /DIR/
功用:使創建在該目錄下的目錄或文件的屬組 都變爲該(具有SGID權限)目錄的屬組
使得屬於同一開發組的成員用戶在該目錄下工作 可以互相更改彼此的文件;
因爲該目錄下文件屬組會變爲同一組,而同組具有相同的權限;
達到共享的目的!
3.STICYK:粘滯位 通常應用在 目錄 目錄屬組應當有寫權限
管理目錄STICKY:
chmod o+|-t /DIR/
功用:使得該目錄下某用戶創建的文件 只有 自己可以刪除
系統上的/tmp /var/tmp 默認具有t權限
管理特殊權限另一種方式:
suid sgid sticky 八進制
0 0 00
0 0 11
0 1 02
0 1 13
1 0 04
1 0 15
1 1 06
1 1 17
chmod 4777 FILE 文件具有SUID及滿權限
*FACL:file access control list 文件訪問控制列表 設置特權 允許 或禁止
文件額外的賦權機制
#setfacl
-m d:u:zhou:rx directory 該目錄下新建的文件默認的訪問控制
-d:設置默認acl
-x:刪除後續acl參數
-b:刪除全部的acl參數 文件屬性後不會遺留"+"
-k:刪除默認的acl參數
-R:遞歸設置acl,包括子目錄
-M:從文件讀取acl設置
-X:從文件讀取刪除acl設置
setfacl -m m:### FILE 設置acl權限最大值;有效權限
用戶或組所設置的權限必須要存在於mask的權限設置範圍內纔會生效
備份和恢復ACL:
cp和mv支持ACL,cp命令需要加上-p 參數。
tar等常見的備份工具不會保留目錄和文件ACL信息
#getfacl -R /tmp/dir1 > acl.txt
#setfacl -R -b /tmp/dir1
#setfacl -R --set-file=acl.txt /tmp/dir1
#getfacl -R /tmp/dir1
tune2fs -o acl /dev/sdb1
mount -o acl /dev/sdb1 /mnt 有些分區可能沒有acl功能 可手動掛載
在u,g,o之外 使用戶可以將屬主是自己的文件 賦權給另外的用戶或組。
通常在u,g,o下普通用戶無法更改自己文件的屬組,無法讓特定的用戶獲得rwx權限
設置文件facl:
setfacl -m u:USER:MODE FILE 賦權給用戶
-m g:GROUP:MODE FILE 賦權給組
查看文件facl:
getfacl FILE
撤銷賦權:
setfacl -x u:USER:MODE FILE
-x g:GROUP:MODE FILE
setfacl -m u:zhou:w testfile 給zhou用戶寫權限
setfacl -m u:he:--- tsetfile 禁止he用戶讀寫執行
文件權限查找路徑:
屬主->facl屬主權限->屬組->facl屬組權限->other
設置了某文件的facl 則權限後有"+"號
-rw-rw-r--+ 1 he zhou 14 7月 30 15:10 he.txt
普通文件:
-rw-rw-r--. 1 chen zhou 14 7月 30 17:19 chen.txt
"."表示SElinux