我在我的笔记本电脑上运行 Arch Linux 作为开发机器,我需要授予用户组对文件夹 /srv/http 及其下的所有文件和文件夹的 RW 权限。
我确保 ACL 已安装,然后将其添加到我的 fstab:
/dev/sda7 / ext4 rw,relatime,data=ordered,acl 0 1
然后我运行了以下命令:
sudo setfacl -m group:users:rw- -R /srv/http
它在我的台式机上运行良好,为什么在我的笔记本电脑上运行不起来?使用上述 setfacl 命令后,用户甚至不再具有对文件或文件夹的读取权限。
当我删除 ACL 记录时,如下所示:
sudo setfacl -bR /srv/http
执行该命令后,用户可以打开文件,但不能修改它们。
我在这里做错什么了吗?
以下是“ls -l /srv/http”的输出
[shane@arch-mobile ~]$ ls -l /srv/http/
total 4
drwxr-xr-x 9 http http 4096 Aug 7 11:04 drupal7
“zcat /proc/config.gz | grep -i acl” 的输出:
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_JFS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_FS_POSIX_ACL=y
CONFIG_GENERIC_ACL=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_CIFS_ACL=y
CONFIG_9P_FS_POSIX_ACL=y
答案1
@quanta 没什么。这是否意味着我的 fstab 在某处存在问题?
是的。这意味着您的根文件系统尚未重新挂载 ACL 支持:
# mount -o remount,acl /dev/sda7
然后再试一次。
答案2
您应该授予“用户”搜索目录的权限,否则它将不起作用:
sudo find /srv/http -type d -exec setfacl -m group:users:rwx {} \;
答案3
如果输出
mount | grep acl
命令为空,则表示您的根文件系统未支持 acl 而挂载。但如果发生这种情况,setfacl
命令将产生错误“操作不受支持”。
请发布getfacl /srv/http
命令的输出。