关于linux系统中的umask值,我们可以通过man手册的解释为:The user file-creation mask is set to mode
简单的理解,就是用户的umask的值决定着文件(也包括目录)创建时的默认权限,对于root用户来说,一般为0022
[root@qq-5201351 ~]# umask 0022
这样可能还是不能很直观的表达出,可以通过如下的命令进行计算,以更容易理解的格式展示出来
[root@qq-5201351 ~]# umask -S u=rwx,g=rx,o=rx
但上面的仅仅是针对的创建一个新目录后的默认权限将是 u=rwx,g=rx,o=rx
这个是如何计算出来的,笔者经常使用的方法如下:
对于目录的默认权限:(rwx rwx rwx) - (0022) --> (rwx rwx rwx) - (--- -w- -w-) = rwxr-xr-x 这样也就是上面的结果:u=rwx,g=rx,o=rx
对于文件的默认权限:(rw- rw- rw-) - (0022) --> (rw- rw- rw-) - (--- -w- -w-) = rw- r-- r-- 这样最后的权限结果就将是:u=rw,g=r,o=r
注意:因为对于文件,默认是不能有执行权限的,所以在计算时,被减数就只能为 rw-rw-rw- , 这样也能防止计算出的结果会有执行权限,那样就不安全了
还有一点需要说明一下,umask的值是4位,当然linux文件的权限也可以写成4位的形式,这里说明一下umask的第一位数字
笔者是参考至官网文档(Red Hat Enterprise Linux / 8 /Configuring basic system settings / Chapter 26. Managing the umask):
其中有一段Note,还特意解释了一下umask的第一位:
When displaying the umask in octal mode, you may notice it displayed as a four digit number (0002 or 0022). The first digit of the umask represents a special bit (sticky bit, SGID bit, or SUID bit). If the first digit is set to 0, the special bit is not set.
也即是说,umask的第一个数字表示一个特殊位(SBIT粘性位、SGID位或SUID位),如果第一个数字设置为0,则不设置特殊位。
但实际上,对于umask,要么我们就写三位,前面就默认为0
如果写成4位,那么第一个数字,也只能为0 ,否则会报错:-bash: umask: 1000: octal number out of range
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17432433.html
标签:rw,rx,umask,默认,linux,rwx,权限 From: https://www.cnblogs.com/5201351/p/17432433.html