Linux中目录的权限继承

问题描述

所以认情况下我的 / 目录是 chmod 555。我运行了以下内容来测试:

sudo chmod 777 /
mkdir /dss
sudo chmod 555 / # reset permissions

如果我运行 stat /dss 那么它会显示

  File: ‘/dss’
  Size: 6               Blocks: 0          IO Block: 4096   directory
Device: 10302h/66306d   Inode: 5802557     Links: 2
Access: (0755/drwxr-xr-x)  Uid: ( 1001/ssm-user)   Gid: ( 1002/ssm-user)
Access: 2021-06-30 22:01:44.478434800 +0000
Modify: 2021-06-30 22:01:44.478434800 +0000
Change: 2021-06-30 22:01:44.478434800 +0000

我希望 /dss 在创建时从 / 继承 777 权限吗?如果我在 /dss 下创建任何子目录,它们都是 755。这里发生了什么?

解决方法

您在这个问题中匹配了两个不同的东西,chmod 是为特定路径或文件设置权限的命令,您可以以不同的方式递归地执行此操作,但您要问的是 umask 值,该值决定了授予的权限创建时的文件。

如果你想检查值设置,你必须执行命令“umask”,这可以告诉你用户必须创建文件的默认值。

如果要更改 umask 值,可以运行以下命令进行设置。

umask 022

请记住,您在上述命令中描述的数字是不会授予文件的权限,因此,在这种情况下,将生成 755。

请参考下表。

号码 允许 4 读 2 写 1 执行

这个命令不是永久的,一旦你注销,这个命令就会丢失并设置为默认值,如果你想以永久的方式改变这个值,你需要在“/etc/profile”或“bashrc”中设置添加上面的命令,可以参考[1]。

BR。

[1] https://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html