不论登入NFS的使用者身份为何,他的身份都会被压缩成为匿名使用者,通常也就是nobody
3.6.2 no_all_squash,root_squash 参数实践服务端修改配置
[root@nfs01 ~]# vim /etc/exports
#share 20171013 hzs
/data 172.16.1.0/24(rw,sync,no_all_squash,root_squash)
[root@nfs01 ~]# /etc/init.d/nfs reload
客户端卸载重新挂载(服务器配置修改后客户端要重新挂载)
[root@backup ~]# umount /mnt/
[root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt
nfs客户端测试结果:
[root@backup mnt]# touch test1.txt
[root@backup mnt]# ll
-rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 13 12:37 test1.txt
[root@backup mnt]# su - oldboy
[oldboy@backup ~]$ cd /mnt/
[oldboy@backup mnt]$ touch oldboy1.txt
touch: cannot touch `oldboy1.txt': Permission denied
[oldboy@backup mnt]$ touch oldboy2.txt
touch: cannot touch `oldboy2.txt': Permission denied
服务端验证:
[root@nfs01 ~]# ll /data/
-rw-rw-r-- 1 nfsnobody nfsnobody 0 Oct 13 12:34 oldboy1.txt
-rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 13 12:37 test1.txt
-rw-r--r-- 1 nfsnobody nfsnobody 8 Oct 13 11:28 test.txt
说明:
no_all_squash,是所有用户都不进行压缩,所以oldboy用户对nfs的目录没有写入的权限(与nfs服务器的共享目录权限有关)。root用户进行压缩所以可以写入。
3.6.3 no_root_squash 参数实践(root用户不进行压缩映射)服务端修改配置
[root@nfs01 ~]# vim /etc/exports
#share 20171013 hzs
/data 172.16.1.0/24(rw,sync,no_root_squash)
[root@nfs01 ~]# /etc/init.d/nfs reload
客户端卸载重新挂载(服务器配置修改后客户端要重新挂载)
[root@backup ~]# umount /mnt/
[root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt
nfs客户端测试结果:
[root@backup mnt]# touch root.txt
[root@backup mnt]# ll
total 16
-rw-rw-r-- 1 nfsnobody nfsnobody 0 Oct 13 12:34 oldboy1.txt
-rw-r--r-- 1 root root 0 Oct 13 12:45 root.txt
-rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 13 12:37 test1.txt
-rw-r--r-- 1 nfsnobody nfsnobody 8 Oct 13 11:28 test.txt
删除测试
[root@backup mnt]# rm -rf ./*
[root@backup mnt]# ll
total 0
说明:
由于对root用户没有进行压缩,所以到达nfs服务器后依旧是root身份,root用户默认对所有的文件都有权限,所以可以写入。(很危险)
本文使用的系统版本为: CentOS Linux release 7.4.1708 (Core) 内核版本为: 3.10.0-693.el7.x86_64
Ubuntu 14.04安装配置NFS服务器