我有一个带有 nfs 导出的文件服务器。在服务器上,我有一个media
运行的目录setfacl -m g:44000:rwx media
。该目录使用 导出rw,sync,no_subtree_check
。
在我的客户端上,我可以运行nfs4_getfacl media
并且它返回预期的A:g:44000:rwaDxtcy
行。
权限media
为drwxrwxr-x
如果我mkdir media/foo
在客户端上运行,我会得到mkdir: cannot create directory ‘/mnt/share/media/foo’: Permission denied
我已经确认:
我的客户端用户属于一个组,其 gid 为
44000
($ id -> ...44000(media-write)
)ACL 功能按预期在本地安装的服务器端运行
该
acl
选项存在于共享的 fstab 安装行中(这不是必需的,但我为了以防万一添加了它)umask
在0002
客户端和服务器上
答案1
为了使辅助组能够在 NFS 上工作(假设该--manage-gids
标志已打开),您必须在主机上拥有具有相同辅助组分配的匹配用户。在本例中,我在服务器上的 UID 没有不是有media-write
辅助。事实上,具有匹配 ID 的用户甚至不存在。在这种情况下,两种可能的修复方法是在服务器端添加匹配的用户并为其分配适当的组,或者禁用该--manage-gids
标志并确保您不违反 NFS 的 16 个组限制。
这适用于常规组所有权权限和 ACL。