参考资料 http://book.51cto.com/art/200709/57189.htm
umask就是指定当前用户在建立文件或目录时候的属性默认值。
linux-xdYUnA:~ # umask 0027 linux-xdYUnA:~ # umask -S u=rwx,g=rx,o= linux-xdYUnA:~ # touch abc linux-xdYUnA:~ # ll abc -rw-r----- 1 root root 0 Mar 19 14:27 abc linux-xdYUnA:~ # umask 0022 linux-xdYUnA:~ # umask 0022 linux-xdYUnA:~ # umask -S u=rwx,g=rx,o=rx linux-xdYUnA:~ # touch abcd linux-xdYUnA:~ # ll abcd -rw-r--r-- 1 root root 0 Mar 19 14:28 abcd
在默认权限的属性上,目录与文件是不一样的。由于我们不希望文件具有可执行的权力,默认情况中,文件是没有可执行(x)权限的。因此:
? 若用户建立为”文件”则默认“没有可执行(x)项目”,即只有rw这两个项目,也就是最大为666分,默认属性如下:
-rw-rw-rw-
? 若用户建立为”目录”,则由于x与是否可以进入此目录有关,因此默认为所有权限均开放,即为777分,默认属性如下:
drwxrwxrwx
umask指定的是“该默认值需要减掉的权限”。因为r、w、x分别是4、2、1,所以。也就是说,当要去掉能写的权限,就是输入2,而如果要去掉能读的权限,也就是4,那么要去掉读与写的权限,也就是6,而要去掉执行与写入的权限,也就是3。
因为umask为022,所以user并没有被去掉属性,不过group与others的属性被去掉了2(也就是w这个属性),那么当用户:
? 建立文件时:(-rw-rw-rw-) – (-----w--w-) ==> -rw-r--r--
? 建立目录时:(drwxrwxrwx) – (d----w--w-) ==> drwxr-xr-x
默认情况下的umask值是022(可以用umask命令查看),此时你建立的文件默认权限是644(6-0,6-2,6-2),建立的目录的默认权限是755(7-0,7-2,7-2),可以用ls -l验证一下哦 现在应该知道umask的用途了吧,它是为了控制默认权限,不要使默认的文件和目录具有全权而设的。
默认情况,包括 touch一个文件,echo一个文件等创建的文件。