前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >文件/目录的默认权限

文件/目录的默认权限

作者头像
小汪Waud
发布2023-02-03 14:59:45
1.6K0
发布2023-02-03 14:59:45
举报
文章被收录于专栏:小汪Waud小汪Waud

本文共1388字,阅读约需4分钟。

我们平时在进行Linux操作的时候,好像更多的是通过chmod等命令去修改文件或目录的权限,很少去关注新建文件或目录时他们的权限是怎样的。本期我们聚焦一下文件/目录的默认权限

想要了解默认权限就不得不提到umask命令,我们先来查看一下它的帮助文档。

代码语言:javascript
复制
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查看或设置的文件权限是指去除掉对应数字的权限,如果默认权限本身就不含有可执行权限,又怎么能去掉呢?

这样理解是不是就好多了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小汪Waud 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档