什麼是特殊權限:
在Linux中,常用的權限有:讀、寫、執行;這3個權限可以在大多數情況下保證數據的安全並滿足我們的使用,但是在某些特殊情況下,我們必須用到一些特殊權限來完成某些工作,例如常用的修改密碼命令“passwd”;普通用戶可以使用passwd命令來修改自己的密碼,但是passwd程序並沒有給other用戶執行權限,爲什麼普通用戶可以執行呢?這就是特殊權限的作用,只需要給passwd程序加上SUID權限,其他的用戶就可以以程序的屬主權限進行執行;也就是說一個普通用戶以root管理員的身份執行了passwd命令;這就是特殊權限的意義。
特殊權限有哪些:
1、SUID: 使某程序啓動後其屬主是程序自身的屬主,而不是啓動者
chmod u+s file
如果file本身有執行權限,則SUID顯示爲s,否則顯示S
2、SGID: 使某程序啓動後其屬組是程序自身的屬組,而不是啓動者的屬組
chmod g+s file
3、Sticky:在一個公共目錄,每個用戶都可以創建,刪除自己的文件,但不可以刪除別人的文件
chmod o+t DIR
chmod o-t DIR
擴展的訪問列表:
訪問列表是指某些文件除了本身的屬主、屬組、其他所指定的權限之外,特例給某些用戶指定訪問權限。
setfacl
-m
u:UNAME:perm 設置某用戶權限 (前面加d:表示本目錄下所有的文件都默認的添加該擴展列表)
g:GNAME:perm 設置某組權限 (前面加d....)
-x :取消權限
u:UNAME
G:UGRUP
getfacl 獲取訪問列表