我已经使用 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
,并改为依赖组权限。