一、NFS
NFS(Network File
System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
组成: NFS体系至少有两个主要部分: 一台NFS服务器和若干台客户机,如右图所示。
客户机通过TCP/IP网络远程访问存放在NFS服务器上的数据。 在NFS服务器正式启用前,需要根据实际环境和需求,配置一些NFS参数
server
安装配置
1 yum install nfs-utils ##安装nfs-utils
--> systemctl start nfs-server ##开启nfs服务
--> systemctl enable nfs-server ##设置开机启动
实验
2 mkdir /helloshare ##创建helloshare目录
-->touch /helloshare/hellofile{1..3 ##在该目录下创建三个文件
-->chmod 777 /helloshare ##给该目录满权限
3 vim /etc/exports ##编辑nfs的配置文件
/helloshare 172.25.254.254.27(sync) 172.25.254.227(ro)
##27主机可以同步刷新数据,227只能读
4 exportfs -r ##刷新nfs服务,服务内容不可看
-v ##列出服务内容,但不刷新
-rv ##既刷新又列出服务内容
安装nfs
建立共享目录,载共享目录里创建文件,编辑nfs配置文件,并刷新配置。
注意:不能重启服务,因为重启服务,服务器会对所有共享目录的主机进行更新同步,过程会相当相当慢的。
刷新并列出
client测试
client1 172.25.254.27
1 showmount -e 172.25.254.127 ##查看127主机的共享目录内容
2 mount 172.25.254.127:/helloshare /mnt/
##挂载127主机的共享目录,到client1主机的/mnt上
-->df ##查看挂载信息
client2 172.25.254.227
1 showmount -e 172.25.254.127 #查看127主机的共享目录内容
2 mount 172.25.254.127:/helloshare /mnt/
##挂载127主机的共享目录,到client2主机的/mnt上
-->df ##查看挂载信息
-->rm -fr * ##删除失败,只能读
227主机可以查看,但挂载失败,因为只有读的权限,没有同步刷新的权限
27主机可以查看,也可以挂载,但不可以写,没有写的权限
服务主机给了227主机sync权限,可以进行挂载
二、共享目录的权限开放
以client2为例
server127端
1 vim /etc/exports
-->/helloshare 172.25.254.227(sync,rw)->wq->exportfs -rv) ##共享目录可写
-->/helloshare 172.25.254.227(sync,rw,no_root_squash)->wq->exportfs -rv) ##匿名用户建立文件系统是以roots身份
-->/helloshare 172.25.254.227(sync,rw,anonuid=1000)->wq->exportfs -rv) ##匿名用户建立文件系统是以id1000用户身份
-->/helloshare 172.25.254.227(sync,rw,anonuid=1000,anongid=1001)->wq->exportfs -rv)
##匿名用户建立文件系统是以id1000用户身份,id1001用户组身份
指定27主机匿名用户在共享目录进行相应操作时,使用的root身份权限
指定27主机匿名用户在共享目录进行相应操作时,是所有者和用户都是用id1000的身份
刷新服务
client1测试:以27主机为例
在共享目录可以使用写的权限
匿名用户建立文件和目录时,系统默认是,nfsnobady用户,nfsnobody组
建立是kiosk用户,第二次修改是1001用户组
三、client端自动挂载
1 yum install autofs.x86_64 ##安装autofs.x86_64
-->systemctl start autofs.service ##开启autofs服务
-->systemctl enable autofs.service ##设置开机启动
2 cd /net ##切换到/net
-->cd 172.25.254.127->ls ##可以直接切换到127主机的共享目录
-->cd helloshare/ ##切换的共享目录
-->df ##查看,已经直接挂载了
安装autofs自动挂载插件
切换到/net目录,到127主机共享目录,自动挂载
改变挂载目录
server
1 cp -rp /home/student/ /helloshare/
##将student用户的家目录复制到共享目录下,-r递归,目录及目录里面的所有内容,-p复制权限,必须加-p,不然实验会出现很多麻烦,导致实验结果失败
cp -rp /home/hello/ /helloshare/
##将hello用户的家目录复制到共享目录下
2 vim /etc/exports ##编辑nfs的配置文件
/helloshate/student 172.25.254.0/24(sync,rw,anonuid=1000,anongid=1000)
##student用户家目录,向172.25.254.ip段开放,同步刷新可写,创建文件系统使用id1000的用户和用组身份
/helloshate/hello 172.25.254.0/24(sync,rw,anonuid=1001,anongid=1001)
##hello用户家目录,向172.25.254.ip段开放,同步刷新可写,创建文件系统使用id1001的用户和用组身份
3 exports -rv ##既刷新并列出服务内容
将student,hello用户的家目录带权限递归复制到共享目录下
编辑共享目录的配置文件
client
1 vim /etc/sysconfig/autofs ##编辑auto.nfs配置文件
#
/misc /etc/auto.misc
/nfs /etc/auto.nfs ##默认挂载目录是/nfs,看的文件的/etc/auto.nfs
#
2 vim /etc/auto.nfs ##编辑默认文件的挂载读取规则
* 172.25.254.127:/helloshare/&
3 vim /etc/auto.master ##编辑auto.master文件
#
TIMEOUT=3 ##退出3秒后自动取消挂载
#
4 systemctl restart autofs.srevice ##重启autofs服务
进行如图操作
编辑auto.nfs文件
编辑autofs配置文件
编辑auto.master文件
测试,切换到指定的挂载目录,自动挂载,默认是退出后300妙取消挂载,修改默认为3秒
测试
client
1 cd /nfs ##切换到默认挂载目录
--> cd hello ##切换到hello用户
-->df ##已经挂载
-->touch file ##建立文件
-->ls -l ##建立文件是id1000用户和用户组
-->cd ##退出
-->df (3秒后) ##自动取消挂载
2 cd /nfs ##切换到默认挂载目录
--> cd student ##切换到hello用户
-->df ##已经挂载
-->touch nihao ##建立文件
-->ls -l ##建立文件是id1001用户和用户组
-->cd ##退出
-->df (3秒后) ##自动取消挂载
测试成功
切换到指定共享目录,切换到student用户,建立文件是student用户,student用户组
切换到指定共享目录,切换到hello用户,建立文件是1001用户,1001用户组