设置群组读取访问的 ACL

设置群组读取访问的 ACL

让我向您介绍我的两位 LDAP 用户 margaret 和 pepijn。

Pepijn 处于我这个不存在的公司的食物链底端,因此只是一个 LDAP 组的成员:

pepijn@srv:/$ groups
user

玛格丽特是比较幸运的一个:

margaret@srv:/$ groups
user SVNAccess www-writers book-writers

我已经为 /files/books 设置了具有默认值的 ACL,以便 book-writers 的成员具有 rwx 访问权限,而 user 的成员只有 r 访问权限。

# file: files/books/
# owner: root
# group: book-writers
user::rwx
group::r--
group:user:r--
group:book-writers:rwx
mask::rwx
other::---
default:user::rwx
default:group::r--
default:group:user:r--
default:group:book-writers:rwx
default:mask::rwx
default:other::---

Margaret 将一些数据写入文件 /files/books/test.txt。然后 Pepijn 尝试查看文件的内容,但当他看到“访问被拒绝”错误时,他感到相当失望。

当我在文件上运行 getfacl 时,它返回以下内容:

# file: files/books/test.txt
# owner: margaret
# group: user
user::rw-
group::r--
group:user:r--
group:book-writers:rwx          #effective:rw-
mask::rw-
other::---

为什么 Pepijn 无法查看 Margaret 的文件内容?

答案1

您的files/books/目录未授予 +x (遍历) 权限group:user

对于目录,+r 可让您列出内容(文件名),但需要 +x 才能真正进入目录(因此所有父级都需要它/)。

答案2

需要在acl中添加该用户组的执行权限,才能遍历文件夹,读取文件。

setfacl -m g:user:r-x /files/books

相关内容