Linux下的文件,除了rwx這些權限外,還有一些特殊的權限,下面我們就來看看這些特殊權限的作用及爲什麼需要這些權限。
1、s權限(setuid)
- setuid:該位是讓普通用戶可以以root用戶的角色運行只有root帳號才能運行的程序或命令。
- s:文件屬主和組設置SUID和GUID,文件在被設置了s權限後將以root身份執行。在設置s權限時文件屬主、屬組必須先設置相應的x權限,否則s權限並不能正真生效。
Linux修改密碼的passwd便是個設置了SUID的程序,普通用戶無讀寫/etc/shadow文件的權限確可以修改自己的密碼。
這裏如果沒有了s權限,那麼普通用戶只有通過root來修改密碼,這樣root就知道了我普通用戶的密碼,這樣是不行的。如果給用戶設置成rw權限,那麼用戶就可以通過刪除/etc/shadow裏的root的密碼,來讓root無密碼,可直接登陸。這樣就會造成極大的風險。
- 設置方法
:# chmod u+s
2、粘滯位(t)
- 設置粘着位,一個文件可讀寫的用戶並一定相讓他有刪除此文件的權限,如果文件設置了t權限則只用屬主和root有刪除文件的權限,通過chmod +t filename 來設置t權限。
- 同樣的,當沒有x權限的時候,爲大寫T
- 設置粘滯位的文件,只能由以下賬戶刪除
- 超級管理員
- 該目錄的所有者
- 該文件的所有者
- 粘滯位的設置方法
:# chmod u+t
3、其他特殊權限
i:不可修改權限
例:chattr u+i filename 則filename文件就不可修改,無論任何人,如果需要修改需要先刪除i權限,用chattr -i filename就可以了。查看文件是否設置了i權限用lsattr filename。a:只追加權限, 對於日誌系統很好用,這個權限讓目標文件只能追加,不能刪除,而且不能通過編輯器追加。可以使用chattr +a設置追加權限