nfsv4 idmapd issue

OpenIndiana作为zfs server,通过以下命令开启的nfs共享:

zfs set sharenfs='root=@10.1.1.0/24,rw=@10.1.1.0/24' tank/backups

客户端通过以下命令挂载:

mount 10.1.1.4:/tank/backups /mnt

但是在Linux client1)ll 看到的属主都是nobody.

通过mount命令可以看到,是nfsv4协议挂载的,但是 mount -o ver=3 指定nfsv3就没有这个情况,所以定位为nfsv4新特性导致.

nfs-v4版本其提供了称为rpc.idmapd 的守护进程,并使用 /etc/idmapd.conf ,当请求加载nfsv4 时该守护进程将处理 UID 和 GID 映射.默认使用nis,没有nis它会自动映射成nobody用户.

总体思路: server & client 修改为同一域名下,并重启相关服务.

3.1 server端

#查看nfs属性
sharectl get nfs
#设置nfsmapid属性
sharectl set -p nfsmapid_domain=mydomain.com nfs
#optiona
#echo 'mydomain.com' >> /etc/defaultdomain

3.2 client端

#client查看domain,默认LOCALDOMAIN
rpc.idmapd -f -vv
#修改client的domain
vim /etc/idmapd.conf
General / Domain= mydomain.com
#重启相关服务
systemctl restart nfs-idmapd

还可以尝试重新mount.


1)
CentOS-7.3 x64
  • storage/zfs/openindiana/nfs_idmap_issue.txt
  • 最后更改: 2019/04/16 18:31
  • (外部编辑)