1. 程式人生 > >關於chmod的兩個用法

關於chmod的兩個用法

關於chmod +s
chmod +s可以分解成chmod g+s和chmod u+s,分別表示Set user id 和 Set group id,這裡的user id 和 group id指的是執行該文

件的使用者。通常使用者去執行一個檔案都是以它當前使用者去執行的,而chmod u+s則使得任何時候這個檔案都以它的user所有者的身份

執行,這就是為什麼那個cpufreq-selector可以使普通使用者可以看到本來只有超級使用者可以看到的彈出選單,並加以控制,也就是說

在加了chmod +s後其實這個東西還是以超級使用者的身份來執行。

Set是一個很大的詞,我不太肯定這裡做何解,有些中文的資料裡直接把它做“設定”說,可能把它當成“固定”會容易理解一點。也就


是說Set user id就是固定了這個檔案的執行使用者。

關於chmod +t
此外還看到了 chmod +t 這個東西,t代表sticky binary (也作text bit),這個東西有兩種意義:
1. 對於二進位制檔案,表示當該程式退出後,文欄位(text segment)依然駐留記憶體,以縮減下次啟動的時間,
2. 對於目錄,該目錄中的所有檔案只有檔案的所有者可以刪除,其它人即使有對該檔案的所有操作許可權也無法刪除(為所欲為的超

級使用者除外)。

chmod u+s  當一個檔案設定了UID,那麼所有使用者執行這個檔案的時候,都是以這個使用者的所有者的許可權來執行。
chmod g+s  GID只能對目錄設定

chmod o+t   對於目錄,該目錄中的所有檔案只有檔案的所有者可以刪除,其它人即使有對該檔案的所有操作許可權也無法刪除(為所

欲為的超級使用者除外)。
setfacl -m u:redhat:rwx file
setfacl -m g:redhat:rwx file
setfacl -x redhat file

setfacl -x g:redhat file