文章转载自:http://gtianf.blog.51cto.com/1897726/1384381
在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,并重新挂载。大部分情况下可以解决
1 2 3 4 | [root@ha1 ~]# nfsidmap -c [root@ha1 ~]# /etc/init.d/rpcidmapd restart 正在启动 RPC idmapd: [确定] 正在启动 RPC idmapd: [确定] |
(2)如果上面的办法没有解决,可以用下面的办法
nfs服务器端,修改/etc/idmapd.conf,给Domain指定一个值,然后重启rpcidmap服务。
1 2 3 4 5 6 7 8 9 10 11 | [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.edu Domain = mydomain.com 重启服务 [root@ha2 ~]# /etc/init.d/rpcidmapd restart Shutting down RPC idmapd: [确定] 正在启动 RPC idmapd: [确定] |
nfs客户端,同样修改/etc/idmapd.conf,给Domain指定一个值,要与服务器端指定的域名相同,然后重启rpcidmap服务
1 2 3 4 5 6 7 | [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.edu Domain = mydomain.com |
1 2 3 4 | 重启服务 [root@ha1 ~]# /etc/init.d/rpcidmapd restart 正在启动 RPC idmapd: [确定] 正在启动 RPC idmapd: [确定] |
重新挂载后,发现目录属主正常,为www
1 2 3 4 5 6 7 8 9 10 11 12 | [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 % /data 192.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 |