尽管服务器和客户端上的 GID 匹配,但 NFSv4 ACL 仍未应用

尽管服务器和客户端上的 GID 匹配,但 NFSv4 ACL 仍未应用

我有一个带有 nfs 导出的文件服务器。在服务器上,我有一个media运行的目录setfacl -m g:44000:rwx media。该目录使用 导出rw,sync,no_subtree_check

在我的客户端上,我可以运行nfs4_getfacl media并且它返回预期的A:g:44000:rwaDxtcy行。

权限mediadrwxrwxr-x

如果我mkdir media/foo在客户端上运行,我会得到mkdir: cannot create directory ‘/mnt/share/media/foo’: Permission denied

我已经确认:

  • 我的客户端用户属于一个组,其 gid 为44000( $ id -> ...44000(media-write))

  • ACL 功能按预期在本地安装的服务器端运行

  • acl选项存在于共享的 fstab 安装行中(这不是必需的,但我为了以防万一添加了它)

  • umask0002客户端和服务器上

答案1

为了使辅助组能够在 NFS 上工作(假设该--manage-gids标志已打开),您必须在主机上拥有具有相同辅助组分配的匹配用户。在本例中,我在服务器上的 UID 没有不是media-write辅助。事实上,具有匹配 ID 的用户甚至不存在。在这种情况下,两种可能的修复方法是在服务器端添加匹配的用户并为其分配适当的组,或者禁用该--manage-gids标志并确保您不违反 NFS 的 16 个组限制。

这适用于常规组所有权权限和 ACL。

相关内容