文件共享-NFS
NFS:网络文件系统(Network File System)。提供网络文件系统平台,需要借助RPC(远程过程调用)协议来发送文件传输的控制指令。
发布时间:1984年
公司:SUN公司。典型产品有JAVA。SUN公司2009年被Oracle公司收购
实验环境:实际操作以真实环境为准,下面是实验环境
客户机 client |
服务器 server |
w7或w10 :192.168.11.1 (虚拟网卡) | centos 7.6 :192.168.11.11 |
centos 7.6 :192.168.11.12 |
NFS 软件:nfs-utils 、 rpcbind
说明:如果是安装了centos桌面环境,这两个软件包都已经安装好了。如果是安装了centos最小环境,需要手动安装这两个软件包。
NFS的部署思路:(网络服务的部署通用思路)
1.关闭防火墙和linux安全功能,并查状态:
systemctl stop firewalld ; setenforce 0
systemctl status firewalld ; getenforce
注:图中dead说明防火墙已关闭,Permissive说明selinux安全功能已关闭
2.查软件是否已安装,如果未安装就安装软件。
3.启动服务,并允许开机自动启动
4.设置共享目录,重新加载设置。
5.做本地(内测)访问测试,做异地(公测)访问测试。
NFS部署步骤:
一、关闭防火墙和linux安全功能,并查状态:
systemctl stop firewalld ; setenforce 0
systemctl status firewalld ; getenforce
二、安装 NFS 软件:
查是否已安装:rpm -q nfs-utils rpcbind
安装:yum install -y nfs-utils rpcbind
查软件的文件列表:rpm -ql nfs-utils
查配置文件列表:rpm -qc nfs-utils
三、NFS 服务管理:
重启动服务:systemctl restart nfs rpcbind
允许开启自动启动:systemctl enable nfs rpcbind
查服务状态:systemctl status nfs rpcbind
四、共享需要的文件:
通过/etc/exports共享配置文件来实现。查man exports来了解配置文件的格式。
exports配置文件语法如下:man exports 查帮助中的EXAMPLE例子
共享目录的绝对路径 1号客户主机名或IP(共享选项) n号客户主机名或IP(共享选项)
/usr *(ro) 192.168.11.13(rw)
/opt *(rw,no_root_squash) 192.168.11.0/24(rw)
exportfs命令选项:man exportfs
-r 重新共享所有目录
-a 打开或取消所有目录共享。
-v 输出详细信息。当共享或者取消共享时,显示在做什么。
-f 在“新”模式下,刷新内核共享表之外的任何东西。
解释(主要):
客户主机名或IP:
*号 表示任何IP的主机
主机名 可以指定客户机的主机名
192.168.11.0/24 表示允许192.168.11.0这个网段的所有主机访问共享
共享选项:
ro (常用选项)可读 ReadOnly
rw (常用选项)可读可写 read + write
sync (常用选项)同步传输
async (常用选项)异步传输
no_root_squash (常用选项)不将root映射成nfsnobody匿名用户,即让root用自己的身份和权限访问共享
no_all_squash (默认启用)不将所有用户映射成nfsnobody匿名用户,即让所有用户用自己的身份和权限访问共享
root_squash 将root映射成nfsnobody匿名用户(默认启用)
all_squash 将所有用户映射成nfsnobody匿名用户
anonuid 匿名用户的uid号
anongid 匿名用户的gid号
nfs的其他配置文件:(仅了解一下,无需修改)
cat /var/lib/nfs/etab 记录nfs共享的完整设置选择,此文件的内容来源于/etc/exports文件。当重启nfs服务时,会自动更新etab文件内容。
来一个简单练习体验一下NFS共享吧:通过nfs将/usr目录以只读方式共享,允许任何IP的主机来访问。
前提是完成了前面部署思路的前三步,即关闭了防火墙、selinux、安装了软件并重新启动软件和设为开机自启
vim /etc/exports
/usr *(ro)
按 :wq 保存退出
平滑重启(重加载)nfs服务:exportfs -rav 或 systemctl reload nfs {建议以后实际操作中改了服务的配置文件用 reload 平滑重启}
本地(内测)查共享资源列表:showmount -e 127.0.0.1
在异地(公测)做挂在访问测试:
本地(内测)查共享资源列表:showmount -e 192.168.11.11
创建挂载点:mkdir -pv /mynfs
挂载:mount -t nfs 192.168.11.11:/usr /mynfs
查磁盘空间使用状态:df -hT
在Win7/10中访问NFS共享:
1.安装nfs客户端(client)程序。
运行Win+R-->control控制面板-->程序-->打开或关闭windows功能-->NFS服务-->勾选“NFS客户端”-->确定。
2.运行Win+R-->cmd-->输入如下命令。
查共享资源列表:showmount -e 192.168.11.11
挂载共享资源为K盘:mount 192.168.11.11:/usr k:
打开共享:win+E--->双击K盘图标
showmount选项: man showmount
-a或--all 以 host:dir 这样的格式来显示客户主机名和挂载点目录。
-d或--directories 仅显示被客户挂载的目录名。
-e或--exports 显示NFS服务器的输出清单。
最后补充一点:详解见下期的 vsftp 文件共享服务
文件共享权限要考虑的2个要素:
1.用户对目录自身的访问权限。
2.目录做共享时设置的访问权限。
警告:用户访问共享时想可读可写,必须是以上两个权限都为可读可写。