umask 不适用于目录

umask 不适用于目录

我对 umask 有一个奇怪的问题。我当前的设置是:

$ umask
0022
$ umask -S
u=rwx,g=rx,o=rx

但这仅适用于文件,不适用于目录:

$ touch abc
$ ll abc
0 -rw-rw-rw- 1 user1 group1 0 Dec 12 11:39 abc
$ mkdir def
$ ll -d def
8.0K drwxrwxrwx+ 2 user1 group1 4.0K Dec 12  2012 def

有人可以建议为什么 umask 不适用于该目录吗?任何帮助表示赞赏!

这是一个新的Centos Linux系统。

编辑:感谢您的评论。正如一些人指出的那样,这也不适用于文件。

额外信息:此问题似乎仅发生在通过 NFS 挂载的主目录上,而不发生在本地目录上。 NFS 是否会以某种方式导致问题?

答案1

我认为你的问题是你也在这里应用了访问控制列表。注意目录,def?它有一个尾随的“+”,这意味着ACL这里也应用了权限。您可以getfacl$HOME目录级别运行该命令吗?这将使我们更深入地了解正在发生的事情。

例如:

% getfacl .
# file: .
# owner: saml
# group: saml
user::rwx
group::rwx
other::r-x

答案2

目录具有执行权限,除非您明确禁用它。如果您想要的话,请尝试 umask 0033。

答案3

umask根本不起作用。

对于文件,该touch命令将使用is-rw-rw-rw-和mask创建。最终许可将是。所以它也不适用于文件。umask00220666 & ~ 00220644 (-rw-r--r--)

对于目录,该mkdir命令将使用isrwxrwxrwx和mask创建。最终许可将是。umask00220777 & ~ 00220755 (rwxr-xr-x)

但我不知道为什么它不起作用。可能是你的SHELL的问题。

相关内容