天天看點

linux 權限掩碼 umask

  一 權限掩碼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中。

繼續閱讀