场景
192.168.1.1机器 挂载了192.168.1.2机器上面的/dir/mountfiels目录
mount -t nfs 192.168.1.2:/dir/mountfiels /dir/mountfiels
问题
在192.168.1.1机器上使用用户A运行一个程序,程序写出一个文件到共享目录中,共享目录中文件的用户和用户组不是用户A
排查
-
首先在两台机器上查看对于用户A的定义用户id是否相同
192.168.1.1机器执行:
id <用户A>
192.168.1.2机器执行:id <用户A>
查看两台机器的用户id是否相同
如果不相同,可以通过命令usermod -g <用户id> <用户A>
,修改用户的用户id -
在nfs服务器端查看/etc/exports
cat /etc/exports
/dir/mountfiles *(rw,sync,all_squash,anonuid=1001,anonuid=1001,insecure)
其中,anonuid=1001, anongid=1001 这两个参数指定了映射目录文件的用户和用户组
如果是0的话表示root用户
- mount执行挂载报错 mount.nfs: access denied by server while mounting 192.168.x.x:/xxx
解决:修改配置文件/etc/exports,加入 insecure 选项,然后重启nfs服务
systemctl restart nfs-server.service
systemctl restart rpcbind
insecure:secure 选项要求mount客户端请求源端口小于1024(然而在使用 NAT
网络地址转换时端口一般总是大于1024的),默认情况下是开启这个选项的,如果要禁止这个选项,则使用 insecure 标识