1. 程式人生 > >Linux中的特殊許可權s、t、i、a

Linux中的特殊許可權s、t、i、a

檔案許可權除了r、w、x外還有s、t、i、a許可權:

s:檔案屬主和組設定SUID和GUID,檔案在被設定了s許可權後將以root身份執行。在設定s許可權時檔案屬主、屬組必須先設定相應的x許可權,否則s許可權並不能正真生效(c h m o d命令不進行必要的完整性檢查,即使不設定x許可權就設定s許可權,chmod也不會報錯,當我們ls -l時看到rwS,大寫S說明s許可權未生效)。Linux修改密碼的passwd便是個設定了SUID的程式,普通使用者無讀寫/etc/shadow檔案的許可權確可以修改自己的密碼。

ls -al /usr/bin/passwd
-rwsr-xr-x 1 root root 32988 2008-12-08 17:17 /usr/bin/passwd

我們可以通過字元模式設定s許可權:chmod a+s filename,也可以使用絕對模式進行設定:

設定s u i d:將相應的許可權位之前的那一位設定為4;
設定g u i d:將相應的許可權位之前的那一位設定為2;
兩者都置位:將相應的許可權位之前的那一位設定為4+2=6。

如:chmod 4764 filename   //設定SUID

t :設定粘著位,一個檔案可讀寫的使用者並一定相讓他有刪除此檔案的許可權,如果檔案設定了t許可權則只用屬主和root有刪除檔案的許可權,通過chmod +t filename 來設定t許可權。

i:不可修改許可權  例:chattr u+i filename 則filename檔案就不可修改,無論任何人,如果需要修改需要先刪除i許可權,用chattr -i filename就可以了。檢視檔案是否設定了i許可權用lsattr filename。

a:只追加許可權, 對於日誌系統很好用,這個許可權讓目標檔案只能追加,不能刪除,而且不能通過編輯器追加。可以使用chattr +a設定追加許可權。