test
我正在尝试以 user 身份访问目录ayush
。该目录由用户拥有ayush
并具有组git
该目录具有权限 0070 和组git
,并且ayush
是该组的成员。
ayush:~> ls -ld
drwxr-xr-x 7 ayush git 4096 Feb 15 11:33 .
ayush:~> ls
test
ayush:~> ls -ld test/
drwxrwx--- 3 ayush git 4096 Feb 15 11:34 test/
ayush:~> chmod 070 test/
ayush:~> ls -ld test/
d---rwx--- 3 ayush git 4096 Feb 15 11:34 test/
ayush:~> ls -l test/
ls: cannot open directory test/: Permission denied
ayush:~> groups
git
ayush:~> id
uid=11417(ayush) gid=30(git) groups=30(git)
我已经看到这个错误有一段时间了,以前不存在。这不是一个新组,我已经在一些代码中使用了它。
顺便说一句,我切换到了另一个用户,他也是该组的一部分,他能够毫无问题地访问“test”目录。
编辑1:不仅如此,我无法更改具有 770 权限的文件夹“test”的组。我收到“不允许操作”错误。而且,我只在“git”组中面临这个问题。我可以将文件夹的组切换到我所属的另一个组。但随后我无法将用户切换回“git”。
答案1
由于您是文件的所有者,因此适用“用户”权限。
仅当您不是所有者时,组权限才适用。
同样,“其他”权限仅适用于您不是所有者且不在该组中的情况。
唯一的区别是root
用户,即使权限另有说明,他们也可以读取文件:-)
答案2
我发现了这个问题。我的组上限为 16 个,并且我已将我的用户添加到 17 个组。 “git”组被列为最后一个组,因此在进行组操作时我没有被算作其中的成员,因为只考虑了前 16 个组。