您的位置:首页 > 产品设计 > UI/UE

关于NFSv4服务共享目录里的文件UID和GID显示为nobody的解决方法

2017-08-03 14:23 363 查看
关于NFSv4服务共享目录里的文件UID和GID显示为nobody的解决方法

一、问题现象:
当我们使用NFSv4这个版本的NFS服务给客户端提供共享文件系统时,会产生共享文件夹下的文件的属主和属组都是nobody的现象,具体现象见下图:




二、问题原因:
造成UID和GID显示为nobody的原因是,nfsv4提供了称为rpc.idmapd 的守护进程,这个服务的配置文件是 /etc/idmapd.conf 。当收到来自客户端的加载请求时,该守护进程将处理UID 和 GID 映射,如果不对其进行配置,这个服务默认将共享目录内文件的UID和GID映射为nobody,见下图:




三、解决方法:
如果要使用idmapd服务,必须要分别在服务端和客户端的idmapd配置文件/etc/idmapd.conf中,去设置服务端和客户端主机的根域名Domain = domain.com (此处根据实际情况填写), 因为不确定这对测试环境是否有影响,所以采取在服务端端停掉这个服务,同时让NFS模块禁用idmapd服务的办法去解决问题。
四、操作步骤:
#本次环境采用vmware workstaion的虚拟机进行模拟,主机信息如下:
服务端:
主机名:NFSAP1
IP:192.168.137.132
操作系统版本:redhat6.5 x64
客户端:
主机名:TESTAP1
IP:192.168.137.142
操作系统版本:redhat6.5 x64

1、在服务端,安装NFS服务。
yum –y installnfs
vim /etc/exports
/naslog192.168.137.*(rw,sync,no_root_squash)
:wq
chkconfig --level 2345 nfs on
service nfs start
2 、在服务端,新建文件/etc/modprobe.d/nfs.conf,加入让NFS模块去禁用idmapd服务的选项。
echo "options nfsnfs4_disable_idmapping=1" > /etc/modprobe.d/nfs.conf
3、在服务端,重启NFS服务
service nfs restart
4、在服务端,停止idmapd服务
service rpcidmapd stop
5、在客户端,把挂载共享目录信息加入到文件/etc/fstab文件中。
echo"192.168.137.132:/naslog /naslog nfs4 defaults 0 0" >>/etc/fstab
6、在客户端,使用mount命令自动挂载共享目录。
mount -a
7、在客户端,查看共享目录下的文件属主属组,已经不是nobody了。




五、测试:
测试当删除正在被调用的文件时,文件描述符是否被释放。
1、在客户端共享目录下,新建一个文件abc.txt,并用tail命令去动态查看。


2、删除这个abc.txt文件。


#下图中删除1.txt后,在当前目录自动产生的临时文件属主和属组不是nobody。

3、使用lsof命令查看文件句柄没有被占用。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  NFS
相关文章推荐