在unix或者linux中,每創建一個文件或者目錄時,這個文件或者目錄都具有一個默認的權限,比如目錄755,文件644,那么這些默認權限是怎么控制的呢?
答案是“umask”權限掩碼。一般默認的umask值為022,其最終效果就是新創建的目錄權限為755,文件權限為644。所以只要修改了用戶的umask值,就可以控制默認權限。
怎么查看當前umask值?
umask
0022
umask -S (SuSE Linux Enterprise 11實例)
u=rwx,g=rx,o=rx
怎么根據實際需要設置umask值?
其實umask是權限的反碼,你可以根據文件或者目錄權限的數字表示值計算得到。
目錄:7- 權限數字
文件:目錄權限去掉執行權限(不要使用目錄權限減1,否則本來就沒有執行權限還要減1就搞錯了)
如果您希望新建目錄的默認權限為755,那么可以設置umask值為:
7-7=0 7-5=2 7-5-2 即022
此時文件的權限為目錄權限去掉執行權限,即644。
常見權限掩碼示例
umask值 |
目錄 |
文件 |
022 |
755 |
644 |
027 |
750 |
640 |
002 |
775 |
664 |
006 |
771 |
660 |
007 |
770 |
660 |
怎么修改umask值?
umask 三位數字(每位數字只能是1-7中的任一數字)
示例:
執行該命令只能使得本次登錄有效,如果退出本次登錄,下次不會有作用。
怎么讓umask值在用戶每次登錄后都有效?
將umask命令語句放到用戶環境變量profile文件中。
修改所有用戶的umask值
在/etc/profile中增加語句umask nnn(權限掩碼數字)
修改指定用戶的umask值
根據不同的shell,修改不同的配置文件,在其中增加語句umask nnn(權限掩碼數字),重新登錄即可生效。
Bourne Shell (sh):$HOME/.profile
Korn Shell (ksh):$HOME/.profile
C Shell (csh): $HOME/.login
Bourne Again Shell(bash):它會在用戶目錄$HOME下依次查找.bash_profile,.bash_login,.profile文件,並用找到的第一個作為自己的配置文件,因此根據實際環境修改相應的文件。
轉自:http://www.wo81.com/tec/os/syscmpr/2014-05-03/197.html