我有一台带有 NFSv4 的服务器。我正在将远程用户的主文件夹的内容安装到本地主机。能够读写内容,但是当我从本地主机检查挂载卷中文件的所有权时,它们都属于相应的远程用户和组(512)。有没有办法让它看起来像是属于本地主机上的本地用户和组(1000)?
远程主机上的/etc/exports(IP 为 192.168.1.110)
/home/user512 192.168.1.142(rw,sync,all_squash,anonuid=512,anongid=512)
Run Code Online (Sandbox Code Playgroud)
本地主机上的/etc/fstab(IP 为 192.168.1.142)
192.168.1.110:/home/user512 /home/localuser/projects/project512 nfs rw,hard,intr,rsize=32768,wsize=32768 0 0
Run Code Online (Sandbox Code Playgroud)
kof*_*ann 43
这就是 idmapping 应该做的。首先,启用是在客户端和服务器上:
# echo N > /sys/module/nfs/parameters/nfs4_disable_idmapping
Run Code Online (Sandbox Code Playgroud)
清理 idmap 缓存并重新启动 idmap 守护进程:
# nfsidmap -c
# service rpcidmapd restart
Run Code Online (Sandbox Code Playgroud)
现在在服务器和客户端将发送而不是数字 ID 字符串主体,如 bob@YOURDOMAIN.COM。您需要在两个主机(客户端和服务器)上都有bob帐户。然而,数字 ID 可以不同。
你有所有的碎片。从 exportfs 手册页,all_squash将所有 uid 和 gid 映射到匿名版本。您所写的内容强制这些值为 512。如果您更改为 1000,则远程主机上的 nfs 服务器会将所有内容设为 1000,并且应该授予访问权限。
在您的 nfs 客户端上,编辑 /etc/idmapd.conf 并更改
[Mapping]
Nobody-User = myappuser
Nobody-Group = myappuser
Run Code Online (Sandbox Code Playgroud)
之后重新启动nfs服务