一、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的官方文档,关闭掉不需要的配置服务。