我在 Ubuntu Server 上,一台服务器运行 nfs-kernel-server,另一台服务器挂载 NFS 导出。在客户端上,当我使用ls -l
或 时stat
,所有内容都显示为 nobody:nogroup,但实际权限已被使用/尊重。
这是正常的吗?如果是,为什么会这样?
答案1
如果你使用的是 NFSv4,那么可能rpc.idmapd缺少、未运行或配置不正确。它需要包含正确的域和领域。如果您愿意,您还可以将默认的 nobody 用户设置为其他用户。请参阅idmapd.conf。
下次请指定协议版本和导出选项,以便答案可能更相关:-)
答案2
我从 Jaunty 9.04 升级到了 Precise 12.04。
Precise 似乎默认使用 NFSv4。我花了很长时间才发现这一点,解决办法是更改每个客户端上的 fstab:
aasen:/nmu/home /home nfs rsize=8192,wsize=8192,timeo=14,intr
到:
aasen:/nmu/home /home nfs vers=3,timeo=14,intr
现在显示用户和组。
如果你确实在使用 nfsv4 并且想要这样做,这显然不是你的解决方案,但其他人可能会搜索,找到这个问题并对这个答案感到满意:-)
答案3
是的,默认情况下,nfs 服务器已启用 root_squash,这使得客户端可以访问 nobody:nogroup。如果您愿意,可以在导出期间将其关闭(安全性较低)。