一 權限掩碼umask
umask是chmod配套的,總共為4位(gid/uid,屬主,組權,其它使用者的權限),不過通常用到的是後3個,例如你用chmod 755 file(此時這檔案的權限是屬主讀(4)+寫(2)+執行(1),同組的和其它使用者有讀寫權限)
二 umask的作用
預設情況下的umask值是022(可以用umask指令檢視),此時你建立的檔案預設權限是644(6-0,6-2,6-2),建立的目錄的預設權限是755(7-0,7-2,7-2),可以用ls -l驗證一下哦 現在應該知道umask的用途了吧,它是為了控制預設權限,不要使預設的檔案和目錄具有全權而設的。
三 如何計算umask值
umask指令允許你設定檔案建立時的預設模式,對應每一類使用者(檔案屬主、同組使用者、其他使用者)存在一個相應的umask值中的數字。對于檔案來說,這一數字的最大值分别是6。系統不允許你在建立一個文本檔案時就賦予它執行權限,必須在建立後用chmod指令增加這一權限。目錄則允許設定執行權限,這樣針對目錄來說,umask中各個數字最大可以到 7。
計算u m a s k值的方法:我們隻要記住u m a s k是從權限中“拿走”相應的位即可。
umask值與權限表
Umask中的某位 | 檔案 | 目錄 |
6 | 7 | |
1 | 6 | 6 |
2 | 4 | 5 |
3 | 4 | 4 |
4 | 2 | 3 |
5 | 2 | 2 |
6 | 1 | |
7 |
如果umask為023,則對于檔案所有者,不拿去任何權限,而建立的檔案預設沒有執行權限,故對檔案所有者的權限位rw-(6);對組所有者,拿去寫權限,原本沒有執行權限,故為r--(4);對其他使用者,拿去寫和執行權限,原本沒有執行權限,故為r--(4);
如果umask為023,因為沒有建立目錄沒有執行權限的限制。則對于目錄所有者,不拿去任何權限,故對目錄所有者的權限為rwx(7);對組所有者,拿去寫權限,故為r-x(5);對其他使用者,拿去寫和執行權限,故為r--(4);
四 常用的u m a s k值及對應的檔案和目錄權限
umask | 目錄 | 檔案 |
0 2 2 | 7 5 5 | 6 4 4 |
0 2 7 | 7 5 0 | 6 4 0 |
0 0 2 | 7 7 5 | 6 6 4 |
0 0 6 | 7 7 1 | 6 6 0 |
0 0 7 | 7 7 0 | 6 6 0 |
五 修改umask值
知道了umask的作用後,你可以修改umask的值了,例如:umask 024則以後建立的檔案和目錄的預設權限就為642、753了。
六 将umask值儲存到環境檔案
若要長期修改umask的值,可以把它寫進/etc/profile或~/.profile或~/.bash_profile中。