一、umask介紹
在linux系統中,我們創(chuàng )建一個(gè)新的文件或者目錄的時(shí)候,這些新的文件或目錄都會(huì )有默認的訪(fǎng)問(wèn)權限,umask命令與文件和目錄的默認訪(fǎng)問(wèn)權限有關(guān)。
若用戶(hù)
- 創(chuàng )建一個(gè)文件,則文件的默認訪(fǎng)問(wèn)權限為 -rw-rw-rw- ,
- 創(chuàng )建目錄的默認權限 drwxrwxrwx ,
- 而umask值則表明了需要從默認權限中去掉哪些權限來(lái)成為最終的默認權限值即Linux umask命令指定在建立文件時(shí)預設的權限掩碼。
二、umask值的含義
umask可用來(lái)設定[權限掩碼]。[權限掩碼]是由3個(gè)八進(jìn)制的數字所組成,將現有的存取權限減掉權限掩碼后,即可產(chǎn)生建立文件時(shí)預設的權限。
可以使用命令 umask 來(lái)查看umask值
hadoop@sench-pc:~$ umask
0002
可以看到umask值為0002,其中第一個(gè)0與特殊權限有關(guān),可以暫時(shí)不用理會(huì ),后三位002則與普通權限(rwx)有關(guān),其中002中
第一個(gè)0與用戶(hù)(user)權限有關(guān),表示從用戶(hù)權限減0,也就是權限不變,所以文件的創(chuàng )建者的權限是默認權限(rw),
第二個(gè)0與組權限(group)有關(guān),表示從組的權限減0,所以群組的權限也保持默認權限(rw),
最后一位2則與系統中其他用戶(hù)(others)的權限有關(guān),由于w=2,所以需要從其他用戶(hù)默認權限(rw)減去2,也就是去掉寫(xiě)(w)權限,
則其他人的權限為rw - w = r,則創(chuàng )建文件的最終默認權限為 -rw -rw -r-- 。
同理,目錄的默認權限為 drwxrwxrwx ,則d rwx rwx rwx - 002 = (d rwx rwx rwx) - (- --- --- -w-) = d rwx rwx r-x,所以用戶(hù)創(chuàng )建目錄的默認訪(fǎng)問(wèn)權限為 drwxrwxr-x 。我們通過(guò)下面的例子驗證一下
hadoop@sench-pc:~$ umask
0002
hadoop@sench-pc:~$ touch test.txt
hadoop@sench-pc:~$ ls -l test.txt
-rw-rw-r-- 1 hadoop hadoop 0 4月 24 20:31 test.txt
hadoop@sench-pc:~$ mkdir test
hadoop@sench-pc:~$ ls -al test
總用量 8
drwxrwxr-x 2 hadoop hadoop 4096 4月 24 20:32 .
drwxr-xr-x 52 hadoop hadoop 4096 4月 24 20:32 ..
可以看到文件test.txt的權限為 -rw-rw-r-- ,目錄test的權限為 drwxrwxr-x ( . 代表當前目錄,也就是test目錄的屬性)。
umask 命令顯示的為umask的數字值,還可以使用命令 umask -S 來(lái)顯示umask的符號值:
hadoop@sench-pc:~$ umask -S
u=rwx,g=rwx,o=rx
可以看出(rwx rwx rwx) - (rwx rwx r-x) = (--- --- -w-) = 002 。
三 語(yǔ)法
參數說(shuō)明:
實(shí)例
1.使用指令"umask"查看當前權限掩碼,則輸入下面的命令:
執行上面的指令后,輸出信息如下:
接下來(lái),使用指令"mkdir"創(chuàng )建一個(gè)目錄,并使用指令"ls"獲取該目錄的詳細信息,輸入命令如下:
$ mkdir test1 #創(chuàng )建目錄
$ ls –d –l test1/ #顯示目錄的詳細信息
執行上面的命令后,將顯示新創(chuàng )建目錄的詳細信息,如下所示:
drwxr-xr-x 2 rootlocal rootlocal 4096 2011-9-19 21:46 test1/
注意:在上面的輸出信息中,"drwxr-xr-x"="777-022=755"。
四、更改umask值
可以通過(guò)命令 umask 值 的方式來(lái)更改umask值,比如我要把umask值改為027,則使用命令 umask 027 即可。改成027后,用戶(hù)權限不變,群組權限減掉2,也就是去掉寫(xiě)(w)權限,其他用戶(hù)減7,也就是去掉讀寫(xiě)執行權限(rwx),所以其他用戶(hù)沒(méi)有訪(fǎng)問(wèn)權限。
hadoop@sench-pc:~$ umask 027
hadoop@sench-pc:~$ umask
0027
hadoop@sench-pc:~$ touch test.txt
hadoop@sench-pc:~$ ls -l test.txt
-rw-r----- 1 hadoop hadoop 0 4月 24 20:49 test.txt
hadoop@sench-pc:~$ mkdir test
hadoop@sench-pc:~$ ls -al test
總用量 8
drwxr-x--- 2 hadoop hadoop 4096 4月 24 20:49 .
drwxr-xr-x 52 hadoop hadoop 4096 4月 24 20:49 ..
可以看到文件的默認訪(fǎng)問(wèn)權限變?yōu)榱?-rw-r----- ,目錄test的默認訪(fǎng)問(wèn)權限變?yōu)榱?drwxr-x--- 。這種方式并不能永久改變umask值,只是改變了當前會(huì )話(huà)的umask值,打開(kāi)一個(gè)新的terminal輸入umask命令,可以看到umask值仍是默認的002。要想永久改變umask值,則可以修改文件/etc/bashrc,在文件中添加一行 umask 027 。
五、總結
當我們想改變創(chuàng )建文件和目錄時(shí)的默認訪(fǎng)問(wèn)權限,則可以通過(guò)umask命令來(lái)實(shí)現。