介紹
umask
指令用來顯示檔案(夾)預設權限。
語法
umask [options] [mask]
常用的options
-S Makes the output symbolic; otherwise an octal number is output.
mask
值
⤍ umask
0002
在執行umask
指令時會得到一個mask
值,它又代表著什麼意思呢。在chmod
指令中,我們認識到檔案(夾)權限以及它的八進位表示法,其實mask
值也是一個八進位的數字,它必須跟權限0666
(一般檔案)或權限0777
(檔案夾或可執行檔)作NOT AND
運算後才會得到對應的權限。
一般檔案因為不是拿來執行的,所以通常會省略執行權限的部份(反正用不到),所以一般檔案給權限0666
就已經是最開放了。
假設mask
值為0002
,則對一般檔案來說,對應到的權限為0664
。計算如下:
0666 NOT AND 0002
= 000110110110 NOT AND 000000000010
= 000110110110 AND 111111111101
= 000110110100 // 二進位
= 0664 // 八進位
相同的,對檔案夾或可執行檔則為權限0775
。比較快的方法其實可以直接用八進位權限數字減mask
值。
範例
你可以顯示檔案(夾)預設權限:
⤍ umask
0002
使用-S
來顯示較易讀的權限字串:
⤍ umask -S
u=rwx,g=rwx,o=rx // 其實就是權限0775
不知道u,g,o
代表的意思請閱讀chmod
指令教學。
如要更改預設權限,可以直接指定新mask
值:
⤍ umask 0022 // 相當於0755
⤍ touch newfile && mkdir newdir // 建立新檔案及檔案夾來測試
⤍ ls -l newfile newdir // 查看newfile及newdir的權限
-rw-r--r-- 1 mt ... newfile
drwxr-xr-x 2 mt ... newdir
可以發現新建立的一般檔案權限為0644
,而檔案夾為0755
。
發佈留言