将nfs目录挂载的所有者映射为匿名用户(nobody)或普通用户.note

noteId: WEBa44302be91a70d2e8c9cccb1540ed961 · 原始路径:/ALL/Linux - A模块/服务配置/磁盘操作 合集/NFS 文件共享(TCP 2049)/将nfs目录挂载的所有者映射为匿名用户(nobody)或普通用户.note · 图片:17 · 附件待处理:0

 
一、将nfs目录挂载为匿名用户所有者:
 
 
·参数:
root_squash    //将root用户的请求映射为匿名用户
no_root_squash    //不将root用户的请求映射为匿名用户
all_squash    //将所有用户的请求映射为匿名用户
anonuid=<>    //指定匿名用户的UID
anongid=<>    //指定匿名用户组的GID
 
1、仅将 root 用户的请求映射为 匿名用户:
 
(1)配置 服务端:
apt install -y nfs-kernel-server
 
mkdir /test
chown nobody:nogroup /test    //只有配置了这条才能生效
vim /etc/exports
## 共享目录的所属者、所属组和 exports文件中定义的uid要一样
exportfs -av
 
(2)配置 客户端:
apt install -y nfs-client
 
mkdir /test
vim /etc/fstab
 
 
 
 
2、将所有用户的请求映射为 匿名用户:
 
(1)配置 服务端:
apt install -y nfs-kernel-server
 
mkdir /test
chown nobody:nogroup /test    //只有配置了这条才能生效
vim /etc/exports
## 共享目录的所属者、所属组和 exports文件中定义的uid要一样
将 all_squash 改为 root_squash 即可
exportfs -av
 
(2)配置 客户端:
apt install -y nfs-client
 
mkdir /test
vim /etc/fstab
 
 
 
3、映射为其它普通用户:
# 如果要映射为其它普通用户,就在服务器上将属组改为普通用户,exportfs文件中的uid也要改为它,同时客户端和服务器都需要同时创建该用户(uid最好要一样)
假如要映射为skills用户:
server:
 
client:
 
1、测试一种情况(例如这里,服务器用户uid是1004,客户端uid为1004的用户并不存在,我们进行测试看看:
 
server:
chown user1:user1 /test
 
vim /etc/exports
 
 
client:
vim /etc/fstab
systemctl daemon-reload
mount -a
 
 
2、测试一种情况(例如这里,服务器user1用户的uid是1004,客户端uid为1004的用户是user2,我们进行测试看看:
 
 
server:
chown user1:user1 /test
 
vim /etc/exports
 
 
client:
vim /etc/fstab
systemctl daemon-reload
mount -a
 
 
这两种情况,虽然用户属主显示有点问题,但是不影响正常写入和nfs同步