我意识到这个问题之前已经有人问过了,但不幸的是我没有足够的经验或足够的时间来继续浏览弹出的大量搜索结果页面。这是配置即将启动的新子系统的最后一步。我希望通过从响应中排除的过程,我可以弄清楚发生了什么。
NFS 共享正在远程设备上安装,但设置了 UID,而我尚未配置。这是 Linux 到 Linux 的 NFS,没有任何内容在域中,也没有任何内容来自 Windows/Mac 共享。
设置:
来源:
- Debian 7,源文件所有者为 rdebXXX,UID 1011
- 在 /etc/exports 中:
/home/rdebXXX/test dev-www(rw,sync,no_subtree_check,anonuid=512,anongid=1003)
exportfs -a
已运行- 目标服务器可以 ping 通
- 未进行主机名过滤,hosts.allow 和 hosts.deny 为空
- Debian 7,源文件所有者为 rdebXXX,UID 1011
目的地:
- Debian 8,目标父目录的所有者为 signsXXX,UID 512。因此挂载需要保持相同的所有者。
- 在 /etc/fstab 中:
x.x.x.x:/home/rdebXXX/test /home/signs/test nfs defaults,bg 0 0
- xxxx的源服务器可以ping通
- 安装已完成,没有安装错误
- 挂载的 UID 为 1004,它映射到目标服务器上的 rdebXXX 帐户。我很确定这是偶然的,因为这些盒子/帐户是在不同时间手动创建的。
- idmapd 正在运行,并且 idmap.conf 具有以下默认条目:
Nobody-User = nobody Nobody-Group = nogroup
- Debian 8,目标父目录的所有者为 signsXXX,UID 512。因此挂载需要保持相同的所有者。
- 笔记
- 我无法更改目标机箱的 UID。一些新机箱中有多个 NFS 挂载点来自多个来源,因此在这种情况下更改 UID 不会有帮助,因为 UID 更改只能修复 1 个挂载点。
- 我无法更改源框,因为如前所述,它们位于当前使用的系统中。
任何帮助都将不胜感激。我尝试了我所知道的方法,并在谷歌上花了几个小时,但 NFS 可能非常挑剔,似乎并不总是容易找出原因。
答案1
如果我理解正确,那么您需要将来自客户端节点的所有请求映射到服务器上的特定 UIG/GID。为此,您必须按如下方式调整导出文件:
/home/rdebXXX/test dev-www(rw,sync,no_subtree_check,anonuid=512,anongid=1003,all_squash)
这全部_南瓜选项告诉服务器将所有请求映射到用户没有人以及您在导出选项中已有的相应 UID 和 GID。