linux 檔案許可權 s 許可權和 t 許可權解析

pythontab發表於2018-03-16

常用許可權

linux系統內有檔案有三種身份 u:擁有者  g:群組   o:其他人

這些身份對於文件常用的有下面許可權:

r:讀許可權,使用者可以讀取文件的內容,如用cat,more檢視

w:寫許可權,使用者可以編輯文件

x:該目錄具有可以被系統執行的許可權


其他許可權

除了讀寫執行許可權外系統還支援強制位(s許可權)和粘滯位(t許可權)


s許可權

s許可權: 設定使檔案在執行階段具有檔案所有者的許可權,相當於臨時擁有檔案所有者的身份. 典型的檔案是passwd. 如果一般使用者執行該檔案, 則在執行過程中, 該檔案可以獲得root許可權, 從而可以更改使用者的密碼.

ls -al /usr/bin/passwd
-rwsr-xr-x 1 pythontab pythontab 32988 2018-03-16 14:25 /usr/bin/passwd

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


設定s u i d:將相應的許可權位之前的那一位設定為4;

設定g u i d:將相應的許可權位之前的那一位設定為2;

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


注意:在設定s許可權時檔案屬主、屬組必須先設定相應的x許可權,否則s許可權並不能正真生效(c h m o d命令不進行必要的完整性檢查,即使不設定x許可權就設定s許可權,chmod也不會報錯,當我們ls -l時看到rwS,大寫S說明s許可權未生效)


t許可權

t許可權:要刪除一個文件,您不一定要有這個文件的寫許可權,但您一定要有這個文件的上級目錄的寫許可權。也就是說,您即使沒有一個文件的寫許可權,但您有這個文件的上級目錄的寫許可權,您 也能夠把這個文件給刪除,而假如沒有一個目錄的寫許可權,也就不能在這個目錄下建立文件。 


怎樣才能使一個目錄既能夠讓任何使用者寫入文件,又不讓使用者刪除這個目錄下他人的文件,t許可權就是能起到這個作用。t許可權一般只用在目錄上,用在文件上起不到什麼作用。 


在一個目錄上設了t許可權位後,(如/home,許可權為1777)任何的使用者都能夠在這個目錄下建立文件,但只能刪除自己建立的文件(root除外),這就對任何使用者能寫的目錄下的使用者文件 啟到了保護的作用。


可以透過chmod +t filename 來設定t許可權


相關文章