|
3-8-1 umask 指令
umask 指令的功能是用來“限定”每一個新增的檔案或者是目錄的基本使用權限(permission)。譬如說當使用者以編輯器新產生的檔案,或者從系統的某處拷貝來的新檔案,或以輸出重導向的方式產生的新檔案,或者以指令 mkdir 新建的目錄等等,一切新產生的檔案、目錄它們的最初使用權限,均由來自於這個內建指令 umask 的設定值。假如使用者想要顯示 umask 的設定值,可鍵入指令 umask,設定值即會顯示出:
以上所顯示的設定值“22”即代表“022”。因第一個數字為“0”時不顯示。假如顯示值為“2”則代表“002”,顯示值為“0”則代表“000”。一般系統的常用的設定值有“002”、“022”、“037”或“077”等幾種。 指令 umask 的設定值以三個八進位的數字“nnn”代表。數字的範圍自 000 到 777。第一個設定數字給使用者(user),第二個則是設定給用使用者所屬的群體(group),第三個給不屬於同群體的其它使用者(other)。 nnn 所代表的意義與 chmod 指令的 nnn 相似。不同的是 chmod 指令 nnn 是“給於”使用許可權限,而 umask 則是“取消”nnn 的使用許可權限。“限定值”對檔案而言最大到 666,也就相當於三者的權限均為可讀取、可寫,但不能執行。目錄則到 777,即是三者均可讀、寫,執行。現在你應該清楚為什麼一個新編輯完成的 C Shell 程式,還要用指令 chmod 來加上可執行使用權限才能執行的原因了吧! 你所設定的 umask 的設定值雖然只有一個,但是,事實上這個設定值對於目錄及檔案卻有著不同的作用,關於這一點請你特別注意。 設定值的計算方採用的是 XOR 的方法。就是你的設定值與檔案的“666”或目錄的“777”來做 XOR 計算所得的結果便是使用權限。以下我們分別以檔案及目錄為例子用表格來做說明:
如果你不喜歡計算的話,以下提供你一個表格,直接對照設定值與檔案及目錄的使用權限的關係,見下表:
接著我們實際來設定指令並觀看其使用結果:
一般而言如果使用者要自行設定或更改這個指令的設定值,最好的方式是將這個指令放在“~/.cshrc”檔案中,讓 C Shell 來為你執行。如果 login 後還有須要更動,可直接在指令行模式下鍵入指令重新設定之。如果使用者不自行設定則系統會給於系統的設定值,一般均為“022”。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||