在centos6.3下搭建了一台nfs服务器,然后用两台centos6.3的客户端挂载。为了保证挂载后,客户端和服务器端目录属主的一致,方便读写,在客户端和服务器端分别添加了www用户,www用户的uid一致,并且共享目录的属主设置为www。但是其中一台挂载后,目录的属主一直是nobody,但是另一台则正常,显示为www。nfs的服务器端对两台客户端的设置是一样的,但是挂载后显示的属主确不同。查找资料发现,在centos 6版本中默认使用的nfs-v4版本,其提供了称为rpc.idmapd 的守护进程,并使用 /etc/idmapd.conf 的配置文件。当请求加载nfsv4 时,该守护进程将处理 UID 和 GID 映射。默认使用nis,没有nis它会自动映射成nobody用户。解决办法如下
(1)在客户端清除idmap的缓存,然后重启rpcidmap,并重新挂载。大部分情况下可以解决
[root@ha1 ~]# nfsidmap -c[root@ha1 ~]# /etc/init.d/rpcidmapd restart正在启动 RPC idmapd: [确定]正在启动 RPC idmapd: [确定]
(2)如果上面的办法没有解决,可以用下面的办法
nfs服务器端,修改/etc/idmapd.conf,给Domain指定一个值,然后重启rpcidmap服务。
[root@ha2 ~]# vi /etc/idmapd.conf[General]#Verbosity = 0# The following should be set to the local NFSv4 domain name# The default is the host's DNS domain name.#Domain = local.domain.eduDomain = mydomain.com重启服务[root@ha2 ~]# /etc/init.d/rpcidmapd restartShutting down RPC idmapd: [确定]正在启动 RPC idmapd: [确定]
nfs客户端,同样修改/etc/idmapd.conf,给Domain指定一个值,要与服务器端指定的域名相同,然后重启rpcidmap服务
[root@ha1 ~]# vi /etc/idmapd.conf[General]#Verbosity = 0# The following should be set to the local NFSv4 domain name# The default is the host's DNS domain name.#Domain = local.domain.eduDomain = mydomain.com
重启服务[root@ha1 ~]# /etc/init.d/rpcidmapd restart正在启动 RPC idmapd: [确定]正在启动 RPC idmapd: [确定]
重新挂载后,发现目录属主正常,为www
[root@ha1 ~]# df -h文件系统 容量 已用 可用 已用%% 挂载点/dev/sda2 9.9G 2.3G 7.1G 25% /tmpfs 244M 0 244M 0% /dev/shm/dev/sda1 194M 28M 157M 15% /boot/dev/sda5 8.7G 148M 8.1G 2% /data192.168.1.109:/data/nfsshare 19G 1.2G 17G 7% /mnt[root@ha1 ~]# ll /mnt/总用量 0-rw-rw-r-- 1 www www 0 3月 25 14:15 a-rw-rw-r-- 1 www www 0 3月 25 15:32 bb