访问NFS网络共享文件

访问NFS网络共享文件

NFS(Network File System),最初是Sun公司所发展的,其最大的功能就是可以通过网络,让不同主机可以共享彼此的文件。在linux主机之间可以使用nfs文件系统进行网络共享,这里需要两台主机模拟说明问题,一台作为服务器,一台作为客户端。



一、服务器共享出一个目录,客户端可以挂载 

服务器:

安装必要软件及打开其服务

[root@server ~]# yum install nfs-utils -y

[root@server ~]# systemctl start nfs

配置防火墙策略:

(1)查看默认的防火墙策略

[root@server ~]# firewall-cmd --list-all


(2)配置相关策略

在防火墙里永久增加nfs服务

[root@server ~]# firewall-cmd --permanent --add-service=nfs

在防火墙里永久新增rpc-bind配置端口服务

[root@server ~]# firewall-cmd --permanent --add-service=rpc-bind

在防火墙里永久新增挂载服务

[root@server ~]# firewall-cmd --permanent --add-service=mountd

重新加载生效

[root@server ~]# firewall-cmd --reload

验证策略:

[root@server ~]# firewall-cmd --list-all


(3)新建/westos/nfs共享目录

[root@server ~]# mkdir /westos/nfs  -p

[root@server ~]# vim /etc/exports    ##编辑策略文件


注:/westos/nfs 为共享目录;* 表示所有人都可以;sync表示为实时同步更新到内存与硬盘中。

[root@server ~]# exportfs -rv       ## 生效之(加载上面的文件,刷新服务。不可以重启服务)

客户端:

显示120主机的/etc/exports 所共享的目录文件

[root@client ~]# showmount -e 172.25.254.120


验证挂载:

[root@client ~]# mount 172.25.254.120:/westos/nfs /mnt/

[root@client ~]# df              ##查看已经挂载成功


[root@client ~]# umount /mnt/  ##卸载之


二、客户端的自动挂载与卸载

接续上文。

[root@client ~]# yum install autofs.x86_64 -y

忽略视觉,未打开或关闭该服务下,则/net不显示存在;打开该服务后,可以看到/net目录已经显示出来


为了测试,这里先打开此服务

[root@client ~]# systemctl start autofs

进入/net/172.25.254.120,可见:当未进入共享目录时,没有自动挂载;当进入共享目录时,已经自动挂载。


当然,当切出共享目录后,系统会自动卸载,但是需要一段时间。

查看配置文件中的默认卸载时间,可见为300秒

[root@client ~]# vim /etc/sysconfig/autofs   ##(7.0版本)


[root@client ~]# vim /etc/sysconfig/autofs

 13 TIMEOUT=5

[root@client ~]# systemctl restart autofs.service     ##重启服务

效果演示:



三、客户端对共享目录可写以及指定目录自动挂载

默认情况下,客户端对共享文件只读


若要是实现共享目录对客户端可写操作,需要分别对服务器和客户端进行配置。

关于服务器:

[root@server ~]# vim /etc/exports  

/westos/nfs   *(sync,rw)               ##加入 rw表示可写

[root@server ~]# exportfs -rv     ##生效

exporting *:/westos/nfs

[root@server ~]# chmod 777 /westos/nfs/    ##该目录对所有人可写

关于客户端:

一个主配置文件(系统原有),一个子配置文件(自己新建)

[root@client ~]# vim /etc/auto.master     ##主配置文件

这里黑色标记的是最终挂载点上层目录,其右为子配置文件(为了规范,命名为auto.nfs)

[root@client ~]# vim /etc/auto.nfs       ##子配置文件


注:nfs表示:最终挂载点; -rw表示:可写; 黑色标记:挂载设备。

[root@client ~]# systemctl restart autofs.service   0     ##重启服务

测试客户端指定目录的自动挂载:(眼见不一定为真


查看挂载:


测试客户端的可读写:

在客户端新建文件:inherit


在服务器查看共享目录:



四、不更新共享文件的更改时间

默认情况下,共享文件的更改时间会随客户端的访问而改变,如下:


当N个客户端频繁访问时,为缓解服务器的压力,可以选择不更新文件更改的时间

[root@client ~]# vim /etc/auto.nfs                            ##子配置文件


(noatime:表示不更新文件被更改的时间)

[root@client ~]# systemctl restart autofs.service      ##重启服务

效果演示:



五、指定用户id身份对共享目录下文件操作

默认情况下,客户端新建的文件身份默认是nfsnobody


话不多,步骤如下:

[root@server ~]# vim /etc/exports         ##指定id身份为1001


[root@server ~]# exportfs -rv                ##生效


效果演示:

客户端在共享目录下,新建文件See_ID


服务器在共享目录下,可见身份是ID为1001(服务器没有id为1001的用户时)


服务器在共享目录下,可见身份是ID为1001(服务器存在id为1001的用户时)


同样,在客户端存在id为1001的用户时



六、恢复客户端在共享目录下新建文件的root身份

注:欲做此步,先要恢复实验五之前的状态(实验五已经将所有身份都定义为id=1001)

[root@server ~]# vim /etc/exports


[root@server ~]# exportfs -rv

默认情况下:服务器的root新建文件的身份就是root,而客户端的root新建文件的身份则是nfsnobody

服务端root在共享目录下新建文件


客户端root在共享目录下新建文件


配置方法:

[root@server ~]# vim /etc/exports


[root@server ~]# exportfs -rv

效果演示:客户端在共享目录下新建文件



七、其他

只允许主机220对共享目录可读写,并且其root执行root身份

[root@server ~]# vim /etc/exports

/westos/nfs   172.25.254.220(sync,rw,no_root_squash)

[root@server ~]# exportfs -rv


主机1-10对于共享目录只读,并不可具备写权限,同时只允许主机220对共享目录可读写,并且其root执行root身份

[root@server ~]# vim /etc/exports

/westos/nfs   172.25.254.220(sync,rw,no_root_squash) 172.25.254.[1-10](sync,ro)

[root@server ~]# exportfs -rv


效果明显,不再赘述,请读者自行尝试。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值