一、NFS相关概念
- nfs是网络文件系统,它允许网络中的计算机通过tcp/ip网络资源共享,在nfs的应用中,本地nfs的客户端应用可以透明的读写于远程nfs服务器上的文件,就像访问本地文件一样。
- showmount命令查询“mountd”守护进程,以显示NFS服务器加载的信息。
showmount(选项)(参数)
showmount -d NFS服务器的ip地址 ##仅显示已被NFS客户端加载的目录;
showmount -e NFS服务器的ip地址 ##显示NFS服务器上所有的共享目录。
二、NFS部署
实验环境:关闭防火墙
服务端:172.25.254.206
<1>安装并开启NFS服务
[root@localhost ~]# yum install nfs-utils -y
[root@localhost ~]# systemctl start nfs-utils.service
<2>设置共享目录
[root@localhost ~]# mkdir /nfsdir
<3>修改配置
[root@localhost ~]# vim /etc/exports
/nfsdir *(sync) 172.25.254.6(rw,sync) ##目录共享所有用户同步,172.25.254.6用户读写同步
[root@localhost ~]# exportfs -rv ##刷新配置,使配置生效
注意:配置文件内容也可如下
/nfsdir *(sync) ##/nfsdir目录共享给所有人并同步
/nfsdir 172.25.254.0/24(sync) ##目录共享网段同步
<4>客户端(172.25.254.6)挂载使用
临时挂载:
[root@foundation6 ~]# showmount -e 172.25.254.206 ##显示NFS服务器上所有的共享目录
[root@foundation6 ~]# mount 172.25.254.206:/nfsdir /mnt
示图:
1>显示NFS服务器上所有的共享目录
2>客户端挂载共享目录
3>测试:客户端172.25.254.6访问目录并建立文件,可写,但无权限
4>测试:其他客户端访问目录并建立文件,只读,不可写
三、NFS自动挂载
客户端:
<1>安装并启动服务
[root@foundation6 ~]# yum install autofs -y
[root@foundation6 ~]# systemctl start autofs
<2>修改释放挂载资源的时间为5s
[root@foundation6 ~]# vim /etc/autofs.conf
timeout = 5
[root@foundation6 ~]# systemctl restart autofs
注意:配置文件查找
测试:
1>访问服务端共享目录,自动挂载
2>退出到/目录下,等待5s后自动卸载
四、自动挂载到自定义目录
客户端:
实验一:只读挂载
[root@foundation6 ~]# vim /etc/auto.master
7 /misc /etc/auto.misc
8 /mnt /etc/auto.mnt ##设定文件挂载目录位于/mnt之下
[root@foundation6 ~]# vim /etc/auto.mnt
nfsdir -ro 172.25.254.206:/nfsdir ##设定只读挂载到/mnt/nfsdir
[root@foundation6 ~]# systemctl restart autofs.service
示图:
<1>指定最终挂载位置和挂载参数文件
<2>mount命令查看共享目录属性及版本号
<3>测试:挂载位置为/mnt/nfsdir
实验二:读写挂载并版本号
客户端:
[root@foundation6 ~]# vim /etc/auto.mnt
nfsdir -rw,vers=3 172.25.254.206:/nfsdir ##设定读写挂载到/mnt/nfsdir,版本号3
[root@foundation6 ~]# systemctl restart autofs.service
服务端:
注意:客户端虽然可以挂载成功,但touch文件的时候显示Permission denied权限不够,添加权限
[root@localhost ~]# chmod 777 /nfsdir
客户端测试:
<1>客户端可创建文件
<2>进入/mnt/nfsdir下,mount查看挂载显示已经只读挂载,版本为3
实验三:允许客户端以root身份执行
服务端:
[root@localhost ~]# vim /etc/exports
/nfsdir *(sync) 172.25.254.6(rw,sync,no_root_squash)
[root@localhost ~]# exportfs -rv
客户端测试:
实验四:允许客户端以uid为1000的用户执行读写操作
服务端:
[root@localhost ~]# vim /etc/exports
/nfsdir *(sync) 172.25.254.6(rw,sync,anonuid=1000)
[root@localhost ~]# exportfs -rv
客户端测试:
实验五:客户端新建的文件归属uid为1000的用户且gid为1000的用户组
服务端:
[root@localhost ~]# vim /etc/exports
/nfsdir *(sync) 172.25.254.6(rw,sync,anonuid=1000,anongid=1000)
[root@localhost ~]# exportfs -rv
客户端测试: