NFS概念
网络文件系统(NFS)是Unix系统和网络附加存储文件管理器常用的网络文件系统,允许多个客户端通过共享文件访问。它可用于提供对共享二进制目录的访问,也可用于允许用户在同一工作组中从不同客户端访问其文件。
NFS协议有多个版本:Linux支持版本4、版本3和版本2,而大多数系统管理员熟悉的是NFSv3。默认情况下,该协议并不安全,但是更新的版本(如NFSv4)提供了对更安全的身份验证的支持,甚至可以通过kerberos进行加密。
NFS服务配置
在服务端安装服务nfs-utils
配置防火墙服务以及开启服务
将nfs、rpc-bind和mountd服务加到防火墙上
(nfs文件系统的服务端口为111,是由rpc-bind提供的)
在客户端测试:
在服务端创建/westos/nfs共享目录,编辑/etc/exports
exportfs -rv ##刷新exports文件
(sync)表示立即同步
在客户端挂载到/mnt下
nfs文件系统与Samba文件系统的区别就在于,Samba文件系统需要一直挂载,而nfs文件系统会在使用时自动挂载,不使用时自动取消挂载,从而节省磁盘空间。
在客户端安装autofs服务
在服务开启后会自动出现/net目录,服务关闭后/net目录消失
切换到/net/172.25.254.149/westos/nfs下,共享目录自动挂载
在客户端可以修改取消挂载的时间,编辑/etc/sysconfig/autofs
将时间改为退出挂载目录3秒后自动取消挂载
测试:
/etc/auto.master ##主策略文件
修改主策略文件可以更改共享目录的最终挂载点,假设最终挂载点为/westos/linux/nfs
在主策略文件中写入最终挂载点的上层目录(挂载目录不用建立,服务会自动建立)
而后在/etc/auto.nfs文件中写入最终挂载点,并写入挂载方式,重启服务
-ro ##Readonly,只读
测试:
编辑/etc/auto.nfs可以修改挂载方式
mount可以查看挂载方式
noatime:在文件被浏览时忽略access time
在服务端编辑/etc/exports文件,修改共享目录挂载的读写权限
在客户端测试:
失败的原因:共享目录的权限不够
添加共享目录/westos/nfs的权限
先在服务端给共享目录下创建一个file文件,以便观察实验现象
在客户端测试:
此时客户端创建文件的用户身份为nfs文件系统的匿名用户
在服务端编辑/etc/exports文件,更改客户端匿名用户创建文件的身份为uid=1001,gid=1001的客户端本地用户
在客户端测试:
此时客户端创建文件的用户身份为uid=1001,gid=1001的用户,但因为客户端不存在uid=1001,gid=1001的客户端本地用户,所以创建文件的用户身份为1001
在客户端创建一用户,并查看用户id
本地用户westos的uid为1001,gid为1001,所以此时客户端创建文件的用户身份为本地用户westos
在服务端编辑/etc/exports文件,使客户端用超级用户root进入共享目录时,用户身份不会改变
在客户端测试:
在服务端编辑/etc/exports文件,可以更改不同主机对共享目录的权限
只有ip为172.25.254.249的主机对共享文件有rw权限,使客户端用超级用户root进入共享目录时,用户身份不会改变,其他同网段的主机对共享文件权限为Readonly。
测试: