原文見鏈接:https://www.cnblogs.com/sench/p/8933638.html
一搞挣、umask介紹
在linux系統(tǒng)中贷币,我們創(chuàng)建一個新的文件或者目錄的時候,這些新的文件或目錄都會有默認的訪問權(quán)限斟珊,umask命令與文件和目錄的默認訪問權(quán)限有關(guān)。若用戶創(chuàng)建一個文件,則文件的默認訪問權(quán)限為-rw-rw-rw-断医,創(chuàng)建目錄的默認權(quán)限drwxrwxrwx,而umask值則表明了需要從默認權(quán)限中去掉哪些權(quán)限來成為最終的默認權(quán)限值奏纪。
二鉴嗤、umask值的含義
可以使用命令umask來查看umask值
hadoop@sench-pc:~$ umask
?0002
可以看到umask值為0002,其中第一個0與特殊權(quán)限有關(guān)序调,可以暫時不用理會醉锅,后三位002則與普通權(quán)限(rwx)有關(guān),其中002中第一個0與用戶(user)權(quán)限有關(guān)发绢,表示從用戶權(quán)限減0硬耍,也就是權(quán)限不變垄琐,所以文件的創(chuàng)建者的權(quán)限是默認權(quán)限(rw),第二個0與組權(quán)限(group)有關(guān)经柴,表示從組的權(quán)限減0狸窘,所以群組的權(quán)限也保持默認權(quán)限(rw),最后一位2則與系統(tǒng)中其他用戶(others)的權(quán)限有關(guān)坯认,由于w=2翻擒,所以需要從其他用戶默認權(quán)限(rw)減去2,也就是去掉寫(w)權(quán)限鹃操,則其他人的權(quán)限為rw - w = r韭寸,則創(chuàng)建文件的最終默認權(quán)限為-rw-rw-r--。同理荆隘,目錄的默認權(quán)限為drwxrwxrwx恩伺,則d rwx rwx rwx - 002 = (d rwx rwx rwx) - (- --- --- -w-) = d rwx rwx r-x,所以用戶創(chuàng)建目錄的默認訪問權(quán)限為drwxrwxr-x椰拒。我們通過下面的例子驗證一下:
hadoop@sench-pc:~$ umask 0002hadoop@sench-pc:~$touch test.txt
hadoop@sench-pc:~$ls-l test.txt -rw-rw-r--1hadoop hadoop04月2420:31 test.txt
hadoop@sench-pc:~$mkdir test
hadoop@sench-pc:~$ls-al test
總用量 8drwxrwxr-x2hadoop hadoop40964月2420:32 .
drwxr-xr-x52hadoop hadoop40964月2420:32..
可以看到文件test.txt的權(quán)限為-rw-rw-r--晶渠,目錄test的權(quán)限為drwxrwxr-x(.代表當(dāng)前目錄,也就是test目錄的屬性)燃观。
umask命令顯示的為umask的數(shù)字值褒脯,還可以使用命令umask -S來顯示umask的符號值:
hadoop@sench-pc:~$ umask -S
u=rwx,g=rwx,o=rx
可以看出(rwx rwx rwx) - (rwx rwx r-x) = (--- --- -w-) = 002 。
三缆毁、更改umask值
可以通過命令umask 值的方式來更改umask值番川,比如我要把umask值改為027,則使用命令umask?027即可脊框。改成027后颁督,用戶權(quán)限不變,群組權(quán)限減掉2浇雹,也就是去掉寫(w)權(quán)限沉御,其他用戶減7,也就是去掉讀寫執(zhí)行權(quán)限(rwx)昭灵,所以其他用戶沒有訪問權(quán)限吠裆。
hadoop@sench-pc:~$ umask027hadoop@sench-pc:~$ umask0027hadoop@sench-pc:~$touch test.txt
hadoop@sench-pc:~$ls-l test.txt-rw-r-----1hadoop hadoop04月2420:49 test.txt
hadoop@sench-pc:~$mkdir test
hadoop@sench-pc:~$ls-al test
總用量 8drwxr-x---2hadoop hadoop40964月2420:49 .
drwxr-xr-x52hadoop hadoop40964月2420:49..
可以看到文件的默認訪問權(quán)限變?yōu)榱?rw-r-----,目錄test的默認訪問權(quán)限變?yōu)榱薲rwxr-x---烂完。這種方式并不能永久改變umask值试疙,只是改變了當(dāng)前會話的umask值,打開一個新的terminal輸入umask命令窜护,可以看到umask值仍是默認的002效斑。要想永久改變umask值,則可以修改文件/etc/bashrc,在文件中添加一行umask?027缓屠。
?四奇昙、總結(jié)
當(dāng)我們想改變創(chuàng)建文件和目錄時的默認訪問權(quán)限,則可以通過umask命令來實現(xiàn)敌完。