我对 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创建。最终许可将是。所以它也不适用于文件。umask
0022
0666 & ~ 0022
0644 (-rw-r--r--)
对于目录,该mkdir
命令将使用isrwxrwxrwx
和mask创建。最终许可将是。umask
0022
0777 & ~ 0022
0755 (rwxr-xr-x)
但我不知道为什么它不起作用。可能是你的SHELL的问题。