尝试访问受 ACL 保护的目录时 ls 会抛出错误

尝试访问受 ACL 保护的目录时 ls 会抛出错误

我已经使用 setfacl 设置了一个目录和一些文件。

jobq@workstation:~/Pool$ getfacl /etc/jobq
getfacl: Removing leading '/' from absolute path names
# file: etc/jobq
# owner: root
# group: jobq
user::rwx
user:jobq:rw-
group::r-x
group:jobq:rwx
mask::rwx
other::r-x

jobq@workstation:~/Pool$ sudo getfacl /etc/jobq/log.txt
getfacl: Removing leading '/' from absolute path names
# file: etc/jobq/log.txt
# owner: root
# group: jobq
user::rw-
group::rw-
group:jobq:rwx
mask::rwx
other::r--

jobq@workstation:~/Pool$ groups
jobq

但是,当我运行命令时,例如

ls -al /etc/jobq

我收到权限错误:

ls: cannot access '/etc/jobq/log.txt': Permission denied
total 0
d????????? ? ? ? ?            ? .
d????????? ? ? ? ?            ? ..

由于用户jobq位于组中jobq,因此他们应该有权访问该目录。我有什么误解吗?我怎样才能解决这个问题?

答案1

问题出在以下 ACL 上/etc/jobq

user:jobq:rw-

这意味着用户jobq无法“搜索”目录,从而阻止ls显示其内容。

要解决此问题,您需要添加x权限。看执行与读取位。 Linux 中的目录权限如何工作?了解详情。

也可以看看限制“组”权限但开放“世界”权限?了解为什么组权限在这里没有帮助。因此,另一个解决方案是删除 的用户 ACL jobq,并改为依赖组权限。

相关内容