在不同 UID 的服务器之间创建 NFS 共享

在不同 UID 的服务器之间创建 NFS 共享

我的网络中有 4-5 台 Ubuntu 14.04 服务器,我想/home在它们之间共享一个公共目录。我已经设置了 nfs 服务器,并且可以在各种客户端上安装该目录。但我的问题是用户 ID。

示例:nfs 上的用户服务器是 UID 1003,但在 nfs 上客户在另一个 nfs 客户端 1005 上,同一个用户的 UID 是 1002。

我有什么办法可以解决这个冲突?我在 Google 上搜索了相当多的选项,但找不到明确的答案。我可以将用户从一个 UID 映射到另一个 UID 吗?还是我必须手动更改所有框中的 UID?

这是我现在的/etc/exports

home 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)

答案1

最好的解决方案当然是将您的用户迁移到单个用户数据库,例如 LDAP、FreeIPA 等。现在这需要一点努力,但将来会为您省去很多麻烦。

但你很幸运,因为从 NFS 版本 4 开始,你不需要需要不再匹配 UID。客户端和服务器之间的 NFSv4 调用使用名称idmapd用于将这些用户/组名称转换为本地用户和组 ID,反之亦然。

至少理论上如此。

默认安全选项不过,sec=sys仍然使用本地 UID/GID 来验证 NFS 操作,并且这些操作仍然需要在服务器和客户端之间匹配 :(

备选选项sec=krb5sec=krb5isec=krb5p,正如其名称所暗示的,都要求您设置 Kerberos... 如果您选择这条路线,您可能也会同步 UID/GID。

所以是的,你可以在 NFSv4 服务器和使用 NFSv4 的客户端之间拥有不同的 UID这需要设置 Kerberos。

相关内容