尽管组具有权限,但无法进入目录

尽管组具有权限,但无法进入目录

我知道还有其他类似的问题,但其中没有任何内容可以解决我的问题。

gitlab-runner@my-machine:~$ groups
gitlab-runner my-user

gitlab-runner@my-machine:~$ sudo ls -l /home
total 16
drwxrwsr-x+ 16 my-user my-user 4096 Feb 13 09:22 my-user
# ... other users' homes omitted ...

gitlab-runner@my-machine:~$ sudo ls -l /home/my-user
total 528
drwsrws---+ 4 my-user my-user 4096 Jun  7  2020 my-dir
# ... irrelevant files omitted ...

gitlab-runner@my-machine:~$ sudo ls -l /home/my-user/my-dir
total 48
drwxrwsr-x+ 7 my-user my-user 4096 Aug 12  2021 my-dir
drwxrwsr-x+ 6 my-user my-user 4096 Jun  7  2020 venv

gitlab-runner@my-machine:~$ cd /home/my-user/my-dir
-bash: cd: /home/my-user/my-dir: Permission denied

用户是组成员,组对目标文件夹及其所在目录有读取和执行权限,但用户却无法cd进入。我也试了logout又试sudo - gitlab-runner,还是不行。为什么?

我不确定为什么x会显示该位s,而且我找不到任何解释。也许这很相关,但我不知道这意味着什么,也不知道如何更改它,因为它sudo chmod g+x不会更改它。

答案1

事实证明我已经为该文件夹设置了 ACL,正如@raj 在评论中正确指出的那样。

我误以为 ACL 权限会与权限位进行“或”运算,但事实并非如此,它们会完全覆盖权限位。我的目录 ACL 有rw-权限,但x缺少该位,因此我没有cd该用户的权限。

相关内容