即使设置了 ACL,也无法读取目录中的文件

即使设置了 ACL,也无法读取目录中的文件

/var/log/httpd我在列出具有次要组成员资格的用户的目录内容时遇到问题dba,即使有 ACL。不久前它曾经有用过。 (我相信你已经听说过前。)

用户:oracle

团体:

[oracle] > groups
oinstall dba

当我尝试列出目录/var/log/httpd或该目录中文件的内容时,我得到

[oracle] > ls -o /var/log/httpd/access.log
ls: cannot access /var/log/httpd/access.log: Permission denied
[oracle] > ls -o /var/log/httpd/
ls: cannot open directory /var/log/httpd/: Permission denied

所以我getfacl对目录做了一个,得到了这个:

[oracle] > getfacl -p /var/log/httpd
# file: /var/log/httpd
# owner: root
# group: root
user::rwx
group::---
group:dba:r-x                   #effective:---
mask::---
other::---

当我getfacl对该目录中的文件执行 a 操作时,我得到:

[oracle] > getfacl -p /var/log/httpd/access.log
getfacl: /var/log/httpd/access.log: Permission denied

我看过的东西:

getfacl每个目录级别的命令列表:

[oracle] > ls -o /var/log/httpd/access.log
ls: cannot access /var/log/httpd/access.log: Permission denied
[oracle] > ls -o /var/log/httpd/
ls: cannot open directory /var/log/httpd/: Permission denied
[oracle] > ls  /var/log/httpd/
ls: cannot open directory /var/log/httpd/: Permission denied
[oracle] > ls  -d /var/log/httpd/
/var/log/httpd/
[oracle] > ls  -ld /var/log/httpd/
drwx------+ 2 root root 4096 Jun 21 03:19 /var/log/httpd/

检查每个父目录级别的 ACL:

[oracle] > getfacl -p /var/log
# file: /var/log
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

[oracle] > getfacl -p /var
# file: /var
# owner: root
# group: root
user::rwx
group::r-x

Linux版本信息:

[oracle] > uname -a
Linux plxxxx01 4.14.35-1902.7.3.el7uek.x86_64 #2 SMP Thu Oct 31 10:06:41 PDT 2019 x86_64 x86_64 x86_64 GNU/Linux

阅读man页面后,getfacl我看到有关有效权限和掩码的信息,但我仍然不确定为什么有效权限适用#effective:---于该dba组。

答案1

mask::---就是问题所在。该值限制指定用户和指定组的权限。换句话说:无论设置group:dba:是什么,该组永远不会获得任何权限。

你可以用以下方法纠正这个问题setfacl -m m:rwx /var/log/httpd

相关内容