在Linux中配置NFS服务器的UID/GID映射时,需通过调整服务器端共享规则或NFSv4的idmap机制实现权限一致性。以下是两种常用方案:
方案1:通过/etc/exports配置静态映射(适用于NFSv3或基础场景)
- 创建专用用户/组
sudo groupadd -g 1001 nfsgroup
sudo useradd -u 1001 -g nfsgroup nfsuser
- 配置共享目录权限
sudo chown -R nfsuser:nfsgroup /shared_directory
- 修改/etc/exports文件
添加:
/shared_directory client_IP(rw,sync,all_squash,anonuid=1001,anongid=1001)
all_squash
强制所有客户端用户映射为指定UID/GID
- 重新加载配置
sudo exportfs -ra
sudo systemctl restart nfs-server
方案2:使用NFSv4 ID映射服务(推荐跨域环境)
- 统一服务器/客户端域名
编辑所有节点的/etc/idmapd.conf
:
[General]
Domain = yourdomain.local
- 验证域名同步
sudo nfsidmap -c
- 配置/etc/exports(无需all_squash)
/shared_directory client_IP(rw,sync)
- 重启服务
sudo systemctl restart nfs-idmapd
sudo systemctl restart nfs-server
注意事项
- 客户端需安装
nfs-common
并执行sudo systemctl restart rpcbind
- 若客户端与服务端用户UID不一致(如客户端UID 500访问服务端UID 1001),方案1更可靠
- 使用
showmount -e localhost
验证共享目录是否正常导出
- 防火墙需放行
rpc-bind
(111)、nfs
(2049)、mountd
(20048)端口