我已经用 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
在 groupjobq
中,他们应该有权访问该目录。我有什么误解?我怎样才能解决这个问题?
问题来自此 ACL
/etc/jobq
:这意味着用户
jobq
不能“搜索”目录,这就是停止ls
显示其内容的原因。要解决此问题,您需要添加
x
权限。请参阅执行与读取位。Linux 中的目录权限是如何工作的?详情。另请参阅限制性“组”权限但开放“世界”权限?了解为什么组权限在这里没有帮助。因此,另一种解决方案是删除用户 ACL
jobq
并改为依赖组权限。