我們創建文件的默認權限是怎麼來的?如何改變這個默認權限呢?
umask是什麼?
當我們登錄系統之後創建一個文件總是有一個默認權限的,那麼這個權限是怎麼來的呢?這就是umask乾的事情。umask設置了用戶創建文件的默認權限,它與chmod的效果剛好相反,umask設置的是權限“補碼”,而chmod設置的是文件權限碼。一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中設置umask值。
如何計算umask值?
umask命令允許你設定文件創建時的缺省模式,對應每一類用戶(文件屬主、同組用戶、其他用戶)存在一個相應的umask值中的數字。對於文件來說,這一數字的最大值分別是6。系統不允許你在創建一個文本文件時就賦予它執行權限,必須在創建後用chmod命令增加這一權限。目錄則允許設置執行權限,這樣針對目錄來說,umask中各個數字最大可以到7。
該命令的一般形式爲:umask nnn
其中nnn爲umask置000 - 777。
附:
一 權限掩碼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的值了,例如:umask 024則以後建立的文件和目錄的默認權限就爲642,753了
四 將umask值保存到環境文件
若要長期修改umask的值,可以把它寫進/etc/profile或~/.profile或~/.bash_profile中。