NFS 文件系统共享服务
什么是NFS
NFS是Network File System的缩写及网络文件系统
主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录
nfs常用于Linux系统之间或linux系统和unix系统之间
nfs系统的优点
NFS文件系统简单易用、方便部署、数据可靠、服务稳定、满足中小企业需求
NFS文件系统内存放的数据都在文件系统之上,所有数据都是能看得见
部署服务
为了保证实验环境的纯净,重置虚拟机
准备两台虚拟机desktop,server
设置server为nfs服务器ip为172.25.254.232
设置desktop为nfs客户端ip为172.25.254.132
在服务端设置好yum配置
确认有没有安装nfs-server服务,没有安装如下开始安装,已安装略过安装启动服务
yum install nfs-server -y
已安装好,只需要启动服务
systemctl start nfs-server
firewall-cmd --permanent --add-service=nfs ##火墙开放nfs服务
firewall-cmd --permanent --add-service=rpc-bind ##火墙开放rpc-bind服务
firewall-cmd --permanent --add-service=mountd ##火墙开放mountd服务
firewall-cmd -reload ##重新加载火墙的服务
firewall-cmd --list-all ##查看火墙开放的服务,看是否加载成功。
exports文件 ##exportfs -arv //不用重启nfs服务,配置文件就会生效,
nfs服务不能随便重启,重启服务会对挂载了nfs的客户端有影响,exportfs来自nfs-utils包,作用是修了配置后重载,不用重启服务。
vim /etc/exports ###编辑exportfs文件
/westos_nfs *(sync) sync 表述同步更新 * 表示所有人 /nfs 表示服务端的共享目录
/mq_nfs *(ro,sync) ro表示只读,挂载后对此共享目录的权限时只读的。
mkdir /mq_nfs /westos_nfs 在根下建立目录
客户端
yum install -y nfs-server
systemctl start nfs-server
yum install autofs -y
systemctl start autofs
启动autofs程序后会默认在/下生成net目录用于本地默认挂载设备。
vim /etc/sysconfig/autofs
TIMEOUT=3 ###修改调用共享目录结束自动卸载时间为3s
在客户端/下生成net目录可以通过cd /net/172.25.254.232 进入查看到共享目录

vim /etc/auto.master ###配置挂载程序的主策略文件
/mnt /etc/auto.nfs 指定挂载目录的上层目录 ,并写入子策略文件的路径
/mnt/mq /etc/auto.westos

vim /etc/auto.nfs 配置子策略文件
nfs 172.25.254.232:/mq 最终挂载目录以及网络挂载设备
vim /etc/auto.mq
westos 172.25.254.232:/nfs
虽然挂载成功我们可以看到共享目录的内容,但是还不能写入文件
所以要用下面的权限策略来设置
nfs文件权限策略
服务端
vim /etc/exportfs
/nfs *(sync) 172.25.254.232(rw,anonuid=1001,anongid=1001,no_root_squash)
/mq *(rw,sync)
注:/nfs /mq 为本地共享目录
sync 共享方式为,本地文件编辑时存储在内存中,编辑完成后发送到共享目录。
rw 读写权限 ro 只读权限
anonuid=1001 转换客户端挂载时在服务端的uid,在服务端的用户身份为服务端uid为1001的用户
anongid=1001 转换客户端挂载时在服务端的gid,在服务端的用户身份为服务端gid为1001的组用户
no_root_squash 当客户端的用户身份为root时,在服务端也以root用户身份共享文件
exportfs -rv
生效配置
并且对目录本身作设置

setfacl -m u:westos:rwx /westos_nfs
setfacl -m u:westos:rwx /mq_nfs
使目录本身对uid 和 gid 为1001的用户可写
测试:
在客户端挂载的共享目录中建立文件
服务端exportfs文件中挂载参数有no_root_squash 时root用户登陆时服务端不做用户转换
去掉no_root_squash参数后
建立文件file1属性显示文件为westos用户的 而westos用户的uid,gid为1001,表示用户身份转换成功。