让我向您介绍我的两位 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