我有一个运行 Debian 7 的服务器,它导出一个 NFSv3 共享,一个运行 Centos 5 的客户端访问它。这工作正常,除了一个基于非主要组的权限问题。
当我在服务器上创建一个具有 770 权限的目录时,如果该组不是用户的主要组,则与目录所有者属于同一组的客户端用户仍然无法访问它。
知道这里可能有什么问题吗?当目录属于用户的主要组时它可以正常工作,但如果它属于次要组则不行。
您的问题可能与 debian 中默认启用的--manage-gids
选项有关(请参阅 参考资料)。rpc.mountd
/etc/default/nfs-kernel-server
从手册页:
-g 或 --manage-gids
接受来自内核的请求,将用户 ID 号映射到组 ID 号列表中,以用于访问控制。NFS 请求通常(除非使用 Kerberos 或其他加密身份验证)包含用户 ID 和组 ID 列表。由于 NFS 协议的限制,最多可以列出 16 个组 ID。如果使用 -g 标志,则从客户端接收到的组 ID 列表将替换为通过服务器上的适当查找确定的组 ID 列表。请注意,“主要”组 ID 不受影响,因此客户端上的 newgroup 命令仍然有效。此功能需要版本至少为 2.6.21 的 Linux 内核。
因此,如果您没有达到“16 个组”的限制,您可以尝试在服务器上禁用此选项。