我尝试尽可能严格地遵循 ubuntu nfs4 文档。我的客户端计算机显示的文件所有权不正确。
这是我两台机器上的 idmapd.conf 文件:
[General]
Verbosity = 0
Pipefs-Directory = /run/rpc_pipefs
Domain = localdomain
[Mapping]
Nobody-User = nobody
Nobody-Group = nogroup
[Translation]
Method=nsswitch
然而,客户端根据数字 uid/gid 显示文件的所有权,而不是映射用户名和组名。我在两台机器上拥有相同的用户名,但 uid 不同。因此,当我在客户端上使用 ls -l 命令查看目录时,它会显示文件由另一个用户拥有,该用户与服务器上的目标用户共享相同的 uid。
我究竟做错了什么?
答案1
该文件看起来正确,也许idmapd
守护进程没有在其中一台机器上运行(请检查pgrep rpc.idmapd
)?
mount
安装实际上是通过 NFS4 完成的吗?检查客户端上的输出。
可能可以idmapd
使用 TCP 包装器阻止守护进程。文件/etc/hosts.deny
和是否/etc/hosts.allow
存在且有任何内容?
请注意,即使你得到它展示客户端上正确的用户名,它将不行随心所欲。每当您尝试访问文件时,权限检查仅使用数字 ID 进行(客户端和服务器之间没有任何转换)。转换仅针对 的输出进行ls
,而不是针对实际的文件访问。所以我想您可以完全停止尝试,因为这可能不是您想要的。
唯一的解决方案是同步客户端和服务器上的 ID,或者使用 Kerberos(非常复杂的)。