默认权限
- 1.默认权限
- 2.默认权限(最终权限)由谁决定
- 2.1起始权限
- 2.2umask(权限掩码)
- 2.3 最终权限的计算
- 3.总结
1.默认权限
在Linux下,我们以普通用户创建一个普通文件,
这个普通文件(这里不包括可执行)的默认权限是:
664(八进制),也就是 rw-rw-r–
我们创建一个目录,这个目录的默认权限是
775,也就是rwxrwxr-x
普通文件(不包括可执行文件)默认权限:664
目录默认权限:775
注:不同平台下的默认权限可能不同,这里仅作为一个例子
2.默认权限(最终权限)由谁决定
先说结论:最终权限(也就是我们看到的默认权限) = 起始权限 & (~umask)
2.1起始权限
起始权限是由系统设定的
普通文件的起始权限是:666
文件的起始权限是:777
2.2umask(权限掩码)
可以参考Linux基本指令,第35条指令umask
系统为了更好的控制文件权限,所以设定了一个权限掩码
我们在操作界面输入umask
可以得到我们这里的默认权限掩码是 0002,这里是八进制的。
我们一般取后三位即可。
2.3 最终权限的计算
现在已知我们文件的起始权限是666,二进制为110110110
权限掩码是002,二进制就是000000010
我们的目的是让权限掩码里出现的权限,在起始权限中不能出现。
相当于一张过滤网。
那么我们让权限掩码按位取反~,在与 起始权限 按位于&
111111101
&
110110110
-----------
110110100
我们得到了 110110100,转换成八进制就是664,也就是上面说的普通文件的默认权限。
目录的默认权限同理可得出为775
3.总结
我们能看到的最终权限也就是默认权限。
而最终权限 = 起始权限 & (~umask)
其中umask可以自行修改。
在root下一般是0022
在普通用户一般是0002