OpenIndiana 和 Linux 之间的 NFS4 用户名映射

OpenIndiana 和 Linux 之间的 NFS4 用户名映射

我在 OpenIndiana 服务器上有一个 NFS4 共享,我正尝试使用 Ubuntu Linux 机器正确访问它。

服务器上共享文件的所有者用户名是“nick”,其 UID 是服务器上的 104。服务器上文件的所有者组是“nick”,其 GID 是服务器上的 100。

Linux 机器上存在相同的用户名/组,但 UID 为 112,GID 为 112。

这是我目前所做的:

在 Linux 的 /etc/fstab 中创建条目以挂载共享。这工作正常,但是当我在 Linux 机器上执行“ls -l”时,用户/组被设置为 nobody。

我在 Linux 机器上编辑了 /etc/default/nfs-common 并设置了“NEED_IDMAPD=yes”。我还在 Linux 机器上编辑了 /etc/idmapd.conf 并设置了“Domain = lan”,这与 OpenIndiana 机器上的设置相同。我重新启动了,现在:

当我在 Linux 机器上执行“ls -l”并在共享中执行时,文件显示为用户“nick”和组“nick”所拥有。太棒了!我以为我搞定了。但是当我“su nick”并执行“touch asdf”时,文件使用错误的用户名/组创建。当我在 OpenIndiana 机器上查看新创建的文件时,它显示用户名为 112,组为 112,因为文件是使用该 UID/GID 创建的,但这并不映射到 OpenIndiana 端的任何用户名/组。

所以基本上我已经完成了一半的工作。我可以用正确的映射查看文件,所以 idmapd 至少在某种程度上可以工作,但映射在其他方面没有被正确转换。我遗漏了什么?

答案1

我发现此链接描述了这个确切的问题。作者得出结论,这个问题是不可避免的,基本上是由于 NFS4 中的设计缺陷。我希望有人能提供一些关于修复的信息。

答案2

这真是太不可思议了,但 idmapd 真的做不到这一点!我花了 2 天时间才在网上找到它(即gmane 上的这个, 或者您在 dfusion 上的链接) 又过了两天才相信有人竟然能制造出如此令人困惑的混乱局面。

不,谈论 uid 映射,让 ls -l 打印出映射的 uid,但在访问这些文件时失败...jeee,tststs,headbang,没办法!

相关内容