Linux
默认创建文件的权限是
666(-rw-rw-rw-)
,创建目录权限是
777(
即
drwxrwxrwx)
,但是这个权限不是我们帐号创建文件或目录的最终权限,还需要参考帐户的
umask
值。
默认情况下,一般帐号的
umask
值是
002,如下图
![](https://i-blog.csdnimg.cn/blog_migrate/2aa1ab300d15fb96a556e1add22c3a1c.jpeg)
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
root
帐号的
umask
值是
022
![](https://i-blog.csdnimg.cn/blog_migrate/e9deb045e3a73d93e29508a1ae569e89.jpeg)
如何得到帐号创建的文件或目录的权限呢,有的网站上说直接用系统默认的文件权限(目录权限)减去帐号的
umask
值就可以了。其实这是错误的。
例如,如果
umask
值为
033
,则
root
帐号创建的文件的权限为
633
,而实际上并不是。
(
1
)设置
umask
的值为
033
,并查看
umask
的值
#umask 033
#umask
(
2
)创建文件
hello
#touch hello
#ls –l hello
![](https://i-blog.csdnimg.cn/blog_migrate/32df564464a2b72d27280529a8a83fd4.jpeg)
可以看到
hello
文件的权限并不是
633
,而是
644.
(
3
)
umask
的正确理解应该是系统默认的权限屏蔽掉
umask
值的权限就是文件或目录的最终权限,如下图
![](https://i-blog.csdnimg.cn/blog_migrate/715c53759ee024b4e53add672d881f2b.jpeg)
如上图,如果
umask
的值为
033
,则表示屏蔽掉组的写和执行的权限,屏蔽掉其他用户的写和执行的权限,结果为
644
,即
rw-r—r—
(
4
)根据以上的结论可以得出,在
root
帐号下默认创建的文件的权限为
644
,创建目录的权限为
755.
下面分别创建一个文件和目录并查看它的权限
如上图
work
的权限为
drwxr-xr-x(755)helloworld
的权限为
-rw-r- - r- (644)
(5.)
如果是普通帐号的话,创建的文件权限为
664
,创建目录的权限为
775
,如下图:
#su zhiming
(6)umask
的作用,可以通过设置它的值来设置用户创建文件时的权限。
转载于:https://blog.51cto.com/51flash/117080