![在 xfs 文件系统上使用 acls 访问文件时权限被拒绝](https://linux22.com/image/144342/%E5%9C%A8%20xfs%20%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%B8%8A%E4%BD%BF%E7%94%A8%20acls%20%E8%AE%BF%E9%97%AE%E6%96%87%E4%BB%B6%E6%97%B6%E6%9D%83%E9%99%90%E8%A2%AB%E6%8B%92%E7%BB%9D.png)
我正在尝试将 ACL 与 Amazon Linux(RHEL-ish 发行版)上的 xfs 文件系统结合使用。但是,当我配置 acls 并尝试使用测试用户访问文件时,我的访问被拒绝。
我目前有 2 个用户:
ec2 用户:用户创建和管理文件。所有者和完全 rwx 访问权限
测试用户:通过 acl 明确指定的访问权限
问题:
- 我目前对 xfs 的理解是 acls 可以“开箱即用”。与 ext3/ext4 不同,我不需要在挂载时启用此选项。它是否正确?
- 下面是我如何创建和许可文件的代码片段。这是 acls 的正确实现吗?
# Create directory and add file
sudo mkdir /aclDirectory
sudo echo "some content" | sudo tee /aclDirectory/test.txt
# Change owner to EC2 user and give RW access to 'testuser'
sudo chown -R ec2-user /aclDirectory/
chmod -R 0700 /aclDirectory/
setfacl -R -m u::testuser:rw /aclDirectory
# validate ACL permissions
getfacl /aclDirectory/test.txt
getfacl: Removing leading '/' from absolute path names
# file: aclDirectory/test.txt
# owner: ec2-user
# group: root
user::rwx
user:testuser:rw-
group::---
mask::rw-
other::---
# Read test.txt
cat /aclDirectory/test.txt
cat: /aclDirectory/test.txt: Permission denied
答案1
扩展和 XFS 文件系统现在自动使用 ACL 选项。用户testuser
仍然需要执行权限才能查看 中的文件/aclDirectory
。您需要目录本身的 ACL和目录中创建的所有新文件系统对象的 ACL。
# Remove the ACLs.
sudo setfacl -b /aclDirectory
# Create the default ACL (for filesystem objects created within the directory).
sudo setfacl -d -m u:testuser:rwx /aclDirectory
# Set an ACL for the directory itself.
sudo setfacl -m u:testuser:rwx /aclDirectory
然后创建一个测试文件,如图ec2-user
所示testuser
。