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

Rus*_*shi 3 ubuntu nfs nfs4

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

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

在解决这个冲突时,我有哪些选择?我在寻找选项方面进行了相当广泛的谷歌搜索,但找不到明确的答案。我是否可以将用户从一个 UID 映射到另一个,或者我是否可以手动更改所有框的 UID?

这是我的当前 /etc/exports

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

HBr*_*ijn 5

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

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

至少这是理论。

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

替代选项sec=krb5sec=krb5i或者 sec=krb5p,正如它们的名字所暗示的,都要求您设置 Kerberos...如果您要走这条路线,您也可以同步 UID/GID。

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