网络文件服务(NFS)
RHEL的NFS服务雷同于其他BSD和UNIX系统中的版本
。导出的资源配置在/etc/exports中
。服务器使用命令exportfs -r 或者service nfs reload 通告资源导出的变更
。共享目录通告mount 命令访问
。NFS服务器是一个RPC服务所以也需要portmap
服务配置文件:NFS
。类型:system V管理的服务
。包:nfs-utils
。进程:rpc.nfsd,rpc.locked,rpciod,rpc.mountd,rpc.rquotad,rpc.statd
。脚本:/etc/init.d/nfs,/etc/init.d/nfslock
。端口:2049(nfsd),其他通过portmap(111)赋予
。配置:/etc/exports
。与之相关的:portmap(mandatory),tcp_wrappers
#man exports查看
具体实现方式:
1.服务器端安装NFS
2.编辑/etc/exports文件
使用主机A(ip:192.168.1.128)部署NFS,主机B(192.168.1.129)作为客户端
#/etc/init.d/nfs start //启动nfs服务,会启动nfs配额服务,主进程服务,挂载服务
#/etc/init.d/nfs stop //停止nfs服务
#/etc/init.d/nfs restart //重启nfs服务
使用主机B
#showmount -e 192.168.1.128 //查看导出资源清单
使用主机A
#exportfs --help //查看帮助
#exportfs -r //重新装载资源
#man exports //查看exports用法
#mkdir /share //创建共享文件夹
#mkdir /common //创建共享文件夹common
#vim /etc/exporfs配置文件,添加如下信息
/share 192.168.1.0/24(rw) 192.168.3.124(ro)
/common 192.168.1.0/24(ro)
排错顺序:
网络,配置,权限,selinux
#exportfs -r //重新导入配置文件
使用主机B
#showmount -e 192.168.1.128 //查看是否共享成功
#mkdir /mnt/share //主机B创建文件夹,用于挂载共享文件
#mkdir /mnt/common //主机B创建文件夹,用于挂载共享文件
#mount 192.168.1.128:/share /mnt/share //挂载共享文件
#mount 192.168.1.128:/common /mnt/common
#cd /mnt/share //查看文件是否可以看到
#umount /mnt/share //卸载挂载资
NFS用户映射:
当使用管理员拷贝文件的时候,会显示nfsnobody用户和nfsnobody组 默认nfs对root(uid=0)用户显示为nfsnobody,为了防止黑客进入,咱们使用用户映射来处理这个问题。
可以通过root_squash来做一个转换
#vim /etc/exporfs配置文件,添加如下信息
/share 192.168.1.0/24(rw,no_root_squash)
/common 192.168.1.0/24(ro)
重新reload nfs,然后在B机器挂载,创建文件验证
#man exports //查看exports手册
默认情况 修改后的情况
root_squash no_root_squash
all_squash anonuid/anongid
nfsnobody
默认的/home文件夹下面用户权限是rwx______,开启all_squash,服务A配置如下
vim /etc/exports
/home/student 192.168.1.0/24(rw)
客户端B机器:
#showmount -e 192.168.1.128
#mkidr /mnt/student
#mount 192.168.1.128:/home/student /mnt/student
#cd /mnt/student发现无法进去
解决办法:
在服务器A
#vim /etc/exports
/home/student 192.168.1.0/24(rw,all_squash,anonuid=500,anongid=501) //开启转换机制。
按照上述操作试试客户端B查看创建文件用户和组
必须启动portmap服务,才能启动nfs服务。
#/etc/init.d/portmap start
#rpcinfo -p //查看rpc信息
防火墙端口选项:
。mountd,statd和lockd能够强制使用一个静态端口 。在/etc/sysconfig/nfs中设置MOUNTD_PORT,STATD_PORT,LOCKD_TCPPORT和LOCKD_UDPPORT变量 MOUNTD_PORT="4002" STATD_PORT="4003" LOCKD_TCPPORT="4004" LOCKD_UDPPORT="4004"