一、NFS的安装和配置(在服务器端)
1、安装nfs
yum install nfs-utils nfs4-acl-tools net-tools tree -y
2、查看安装的nfs支持的版本
cat /proc/fs/nfsd/versions
3、(可选)可修改一些NFS的参数,例如只支持NFSV4(演示示例不作修改),文件地址:
/etc/sysconfig/nfs
4、配置NFS共享目录
mkdir -p /mnt/nfs
chown -R root.root /mnt/nfs/
cat >> /etc/exports <
/mnt/nfs 192.168.1.190(rw,no_root_squash,async)
EOF
5、启动nfs,重启nfs
systemctl restart nfs
特别说明:
man nfs : 查看nfs 的mount挂载参数
man exports : 查看nfs在/etc/exports的配置参数
二、NFS使用(在客户端)
1、挂载nfsv4.2版本的2种方式
mount -t nfs4 -s -v -o minorversion=2,soft,timeo=5,retrans=3 192.168.1.195:/mnt/nfs /mnt/
mount -t nfs -s -v -o vers=4.2,soft,timeo=5,retrans=3 192.168.1.195:/mnt/nfs /mnt/
2、客户端测试nfs增加、修改、删除
查看本地的 /mnt 目录的情况
ll /mnt
在本地/mnt 目录中新建文件 aaa.txt
touch /mnt/aaa.txt
cat /mnt/aaa.txt
修改aaa.txt文件内容
echo aaa > /mnt/aaa.txt
cat /mnt/aaa.txt
增加bbb.txt文件和内容
echo bbb > bbb.txt
再次查看本地的 /mnt 目录的情况
ll /mnt
在本地 /mnt 目录中增加新的目录并在新的目录中增加文件,并且查看文件内容
mkdir /mnt/test
cat > /mnt/test/ccc.txt <
ccc-aaa
ddd-aaa
eee-aaa
EOF
echo dfdfdf > /mnt/test/sdst.txt
cat /mnt/test/ccc.txt
cat /mnt/test/sdst.txt
查看整个/mnt目录结构
tree /mnt/
3、在服务器端查看共享目录结构和内容
tree /mnt/nfs
cat /mnt/nfs/test/ccc.txt
cat /mnt/nfs/test/sdst.txt
4、测试在服务器端删除和在客户端删除
在服务器端删除 /mnt/test/ccc.txt,在客户端查看
rm -rf /mnt/test/ccc.txt
tree /mnt
在客户端删除 /mnt/aaa.txt 在服务器端查看
rm -rf /mnt/aaa.txt
tree /mnt/nfs
三、 NFS配置用户权限验证
1、root用户没有增加,修改,删除/mnt/nfs目录文件的权限
chown -R root.root /mnt/nfs/
/mnt/nfs 192.168.1.195(rw,all_squash,no_root_squash,async)
2、root用户没有增加,修改,删除/mnt/nfs目录文件的权限
chown -R root.root /mnt/nfs/
/mnt/nfs 192.168.1.195(rw,root_squash,async)
3、root用户有增加,修改,删除/mnt/nfs目录文件的权限
chown -R nfsnobody /mnt/nfs/
/mnt/nfs 192.168.1.195(rw,root_squash,async)
d.root用户有增加,修改,删除/mnt/nfs目录文件的权限
/mnt/nfs 192.168.1.195(rw,no_root_squash,async)
四、/etc/exports参数解释
1、ro : 共享目录只读
2、rw : 共享目录读写
3、root_squash : 客户端用root用户访问共享文件夹的时候,将root用户映射成匿名用户; (这是默认设置)
4、no_root_squash : 客户端用root用户访问共享文件夹的时候,保持root权限
5、all_squash : 客户端所有访问共享文件夹的用户都映射为匿名用户
6、no_all_squash : 客户端访问共享文件夹的用户在服务器端存在,就映射存在的用户,不存在就映射为匿名用户 ; (这是默认设置)
7、anonuid= : 匿名访问用户的本地用户UID; 可指定,默认设置为nfsnobody(65534);
8、anongid= : 匿名访问用户的本地用户组GID; 可指定,默认设置为nfsnobody(65534);
9、secure : 限制客户端只能从小于1024的端口连接服务器; (默认)
10、insecure : 允许客户端从大于1024的端口连接服务器;
11、subtree_check : 如果共享子目录,nfs服务器强制检查父目录的权限 ; (默认)
12、sync : 将数据同步写入内存缓冲区与磁盘中,可以保证数据的一致性;
13、wdelay(默认) : 检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率,与sync配合使用;
14、no_wdelay : 若有写操作则立即执行,与sync配合使用;
15、async : 将数据先保存在内存缓冲区中,必要时才写入磁盘,使用async参数,wdelay参数直接失效;
特别说明:如果只开启NFSV4,见意参考redhat的官方文档,关闭掉不需要的配置服务。