文件/目录的默认权限
本文共1388字,阅读约需4分钟。
我们平时在进行Linux操作的时候,好像更多的是通过chmod等命令去修改文件或目录的权限,很少去关注新建文件或目录时他们的权限是怎样的。本期我们聚焦一下文件/目录的默认权限。
想要了解默认权限就不得不提到umask命令,我们先来查看一下它的帮助文档。
umask: umask [-p] [-S] [mode]
Display or set file mode mask.
Sets the user file-creation mask to MODE. If MODE is omitted, prints
the current value of the mask.
If MODE begins with a digit, it is interpreted as an octal number;
otherwise it is a symbolic mode string like that accepted by chmod(1).
Options:
-p if MODE is omitted, output in a form that may be reused as input
-S makes the output symbolic; otherwise an octal number is output
Exit Status:
Returns success unless MODE is invalid or an invalid option is given.
帮助文档里说umask是用来Display or set file mode mask,即查看或指定用户在建立文件或目录时的权限默认值。
查看权限默认值
输入umask我们得到数字0002,其中后三位代表权限默认(负)值,需要注意的是在默认权限的基础上去掉对应的数字的权限,我们在后面举例解释。
umask
输入umask -S(S即Symbolic)得到u=rwx,g=rwx,o=rx,即775,计算方法详见Linux||常用命令(一)的权限部分。
umask -S
我们新建文件testfile.txt和目录testfile,查看其权限情况。
文件具有u=rw,g=rw,o=r权限(664),目录具有u=rwx,g=rwx,o=rx权限(775)。那“在默认权限的基础上去掉对应的数字的权限”是什么意思呢?
在默认权限的属性上,目录和文件是不一样的,对于目录来说,如果没有可执行权限,就无法进入目录查看;对于文件来说,大部分都是文本文件,少有用于执行的。
因此,文件的创建是默认没有可执行权限的,即默认权限为666;目录的创建是默认包含所有权限的,即默认权限为777。
前面提到了002是权限默认(负)值,需要在默认权限的基础上去掉对应的数字的权限。对于文件来说,666-002=664;对于目录来说,即777-002=775,与示例相符。
修改权限默认值
输入umask 033即可设置默认权限值为0033,但就类似于直接输入命令修改环境变量一样,重新登录服务器即失效。
可能不理解的地方
假如我们现在的默认权限是0033,我们新建一个文件,权限应该是666-033=633对不对?即u=rw,g=wx,o=wx。
但经过我们查看,文件xx的权限并不如我们刚刚分析的那样,没有可执行权限。如果你也有这样的困惑,说明你走进了一个误区。
通过umask查看或设置的文件权限是指去除掉对应数字的权限,如果默认权限本身就不含有可执行权限,又怎么能去掉呢?
这样理解是不是就好多了。
相关文章
- Windows 11 内核新调试器「GitHub 热点速览 v.23.01」
- HelloGitHub 最受欢迎的开源项目 Top10(2022年)
- 你的 GitHub 年度报告「GitHub 热点速览 v.22.52」
- 《HelloGitHub》第 81 期
- 学 Rust 要几天?「GitHub 热点速览 v.22.51」
- 史上最小 x86 Linux 模拟器「GitHub 热点速览 v.22.50」
- 玩 ChatGPT 的正确姿势「GitHub 热点速览 v.22.49」
- GitHub 开源了多款字体「GitHub 热点速览 v.22.48」
- 快速绘制流程图「GitHub 热点速览 v.22.47」
- 《HelloGitHub》第 80 期
- 视觉享受,兼顾人文观感和几何特征的字体「GitHub 热点速览 v.22.46」
- 一年一度!GitHub 开发者大会「GitHub 热点速递 v.22.45」
- 再来一次,新技术搞定老业务「GitHub 热点速览 v.22.44」
- 下一代工具链「GitHub 热点速览 v.22.43」
- 《HelloGitHub》第 79 期
- 中国制霸生成器「GitHub 热点速览 v.22.42」
- 极客的浪漫「GitHub 热点速览 v.22.41」
- 换工作?试试远程工作「GitHub 热点速览 v.22.40」
- 《HelloGitHub》第 78 期
- 不可错过的效能利器「GitHub 热点速览 v.22.39」