尽管权限正确,但仍无法进入目录

尽管权限正确,但仍无法进入目录

我有一个目录(nobody由于它是 Docker 绑定挂载的一部分,并结合了用户命名空间重新映射,因此由 拥有)。这是其相关ls -la输出:

drwxrwxr-x    2 nobody   nobody        4096 May 26 14:42 Directory

以 身份运行root,虽然我不属于目录的所有者或组,但该目录是所有人都可读和可执行的,所以我应该能够进入它。但是,当运行 时cd Directory,它失败了:

bash: cd: Directory: Permission denied

答案1

我认为您在解决问题后才创建了问题和答案。

请注意,GNUls长列表-l将通过在文件模式位列表中附加一个字符来向您显示替代访问方法(例如访问控制列表)是否适用于文件。

而不是:

drwxrwxr-x    2 nobody   nobody        4096 May 26 14:42 Directory

您的原始目录列表可能显示:

drwxrwxr-x+   2 nobody   nobody        4096 May 26 14:42 Directory
          ^
           \  Note the extra + character here.

如果你不了解这个惯例,很容易被忽视,但是从手册

当文件模式位后面的字符是空格时,没有其他访问方法。当它是打印字符时,就有这种方法。

GNU‘ls’使用‘ .’字符来指示具有 SELinux 安全上下文的文件,但没有其他替代访问方法。

具有任何其他替代访问方法组合的文件都以“ +”字符标记。

答案2

就我而言,这是由挥之不去的访问控制列表。我的问题的解决方案是从目录及其子目录中删除所有访问控制列表:

# setfacl -bnR Directory/

相关内容