Linux默认创建文件的权限是666(-rw-rw-rw-),创建目录权限是777(drwxrwxrwx),但是这个权限不是我们帐号创建文件或目录的最终权限,还需要参考帐户的umask值。

默认情况下,一般帐号的umask值是002,如下图
umask 的使用体会_职场
root帐号的umask值是022
umask 的使用体会_职场_02
 
如何得到帐号创建的文件或目录的权限呢,有的网站上说直接用系统默认的文件权限(目录权限)减去帐号的umask值就可以了。其实这是错误的。
例如,如果umask值为033,则root帐号创建的文件的权限为633,而实际上并不是。
1)设置umask的值为033,并查看umask的值
#umask 033
#umask
 
 umask 的使用体会_职场_03
2)创建文件hello
#touch hello
#ls –l hello
umask 的使用体会_休闲_04
 
可以看到hello文件的权限并不是633,而是644.
3umask的正确理解应该是系统默认的权限屏蔽掉umask值的权限就是文件或目录的最终权限,如下图
umask 的使用体会_职场_05
 
如上图,如果umask的值为033,则表示屏蔽掉组的写和执行的权限,屏蔽掉其他用户的写和执行的权限,结果为644,即 rw-r—r—
4)根据以上的结论可以得出,在root帐号下默认创建的文件的权限为644,创建目录的权限为755.下面分别创建一个文件和目录并查看它的权限
 
 umask 的使用体会_Linux_06
如上图work 的权限为drwxr-xr-x(755)helloworld的权限为-rw-r- - r- (644)
(5.)如果是普通帐号的话,创建的文件权限为664,创建目录的权限为775,如下图:
#su  zhiming
 
 umask 的使用体会_职场_07
(6)umask的作用,可以通过设置它的值来设置用户创建文件时的权限。