Linux基础学习-NFS服务管理
第二十四节NFS服务管理
NFS(network file system)网络文件系统
文件共享:将一台服务器中的文件共享到其他服务器
主要针对oracle DBA的备份
24.1搭建NFS服务器端
搭建服务器端必备操作: 1.安装yum源
2.配置防火墙
3.设置seLinux
4.关闭NM管理
24.1.1安装NFS软件
Nfs在yum库中,
1.安装命令:----yum install nfs -*------》yum install nfs-utils
Utils中包含2部分一个服务器端的软件和客户端的软件
24.1.2查看安装后的NFS软件
1.查看命令:rpm -ql nfs -utils
2.相关配置文件:/etc/exports --------声明共享的目录
/etc/rc.d/init.d/nfs----启停脚本
/usr/sbin/showmount----客户端命令文件
24.1.3准备共享目录
1.新建一个目录:mkdir /nfs
2.复制/etc/passwd和/etc/hosts文件到/nfs下,用作共享使用
24.1.4编写exports文件
1.目的是声明共享的目录
2.编辑 vim /etc/exports—需要自己建立,后期导出
编写规则:每行定义一个共享目录
每行至少包含两段内容:第一段是共享的目录路径,
第二段客户端(文件系统共享属性)
例: /nfs 192.168.198.0/24(rw):表示在这个网段的客户端读和些这个/nfs目录,
1) R读,w写,x执行,ro(只读)
2)默认属性Root_squash—对客户端root权限进行压缩,设置后客户端的root用户只能下载,不能上传,
默认属性no_root_squash----对客户端root用户不进行权限压缩,设置后客户端的root用户可以对共享目录进行上传下载文件(客户端root权限同服务器端root权限)
3)只给192.168.198.10这个IP地址不压缩客户端root权限,对共享目录有上传和下载的功能,而其他地址普通用户只有下载的功能
4)修改之后,执行命令:exportfs -ra (重新导出所有定义的共享目录文件)
24.1.5启动NFS服务
1.命令:service nfs start
2.查看启动状态
24.2搭建NFS客户端
搭建客户器端必备操作: 1.安装yum源
2.配置防火墙
3.设置seLinux
4.关闭NM管理
24.2.1安装软件
1.安装命令:yum install nfs-*
24.2.1使用命令:showmount -e+ip地址
Showmount命令:
相关文件:/usr/sbin/showmount -----客户端命令
基本语法:showmount + -e +服务器端IP地址
-e (exports):显示nfs服务器的导出列表
练习:显示nfs服务器的导出列表
showmount -e 192.168.198.128----表示这个服务器向网络中共享了哪些目录
Export list for 192.168.198.128: ----导出这个IP的列表
/nfs 192.168.198.0/24:
24.2.2挂载操作(服务器—客户端)
1.客户端是无法访问,nfs服务器端创建的目录路径/nfs
2.将服务器上的共享目录挂载到本地(客户端)目录,其实就是将服务器上的文件系统挂载到本地目录上,进行访问。
3.准备挂载点:–mkdir /nfs_gx
4.挂载操作:mount -t 设备路径 挂载点—
mount -t 服务器端共享目录名 服务器地址:/共享目录路径 挂载点
例如: Mount -t nfs 192.168.198.128:/nfs /nfs_gx
表示将服务器上的/nfs文件系统目录挂载到/nfs_gx,文件系统类型为nfs
不能挂载服务器上别的目录路径,除非目录在共享文件目录下,就可以挂载
5.查看刚才的挂载信息:
24.2.3访问共享目录(客户端)
1.在客户端上查看共享目录----查看的这些目录依然在服务器上的共享目录上
2.如何下载共享目录下的文件-----使用复制命令
客户端在当前共享目录路径下,执行cp操作即可
3.客户端能够上传文件,需要2种权限----(生产环境中基本不用)
1)客户端对应服务器中的用户权限(优先级低)
2)nfs软件本身允许的权限(优先级高)—在exports文件种定义(rw,ro)
A执行cp复制命令上传文件到共享目录,失败,原因:
服务器端有一个用户nfsnobody(该用户默认与客户端的用户绑定),该用户负责上传客户端用户创建的文件,但是/nfs共享目录文件的权限,不管是主用户还是属组用户都是root权限,作为其他用户的nfsnobody没有w权限,因此无法上传文件。如下图:
B.为了防止这样的情况发生,需要重新编辑服务器端/etc/exports文件。
/nfs 192.168.198.0/24(rw,no_root_squash),添加一个no_root_squash
默认属性no_ root_squash -----不对客户端的root用户权限压缩,相当于客户端root用户对应服务器端root用户
C.修改成功后,在服务器端使用exportfs -ra命令:该命令表示重新导出生效
在客户端重新执行复制命令,进行上传就会成功
D.但是这样做会有隐患,这样操作导致服务端root用户对应的192.168.198.0这个网段的所有IP地址都可以让客户端的root用户进行操作,范围比较大,为了降低风险,可以这样在服务端的/etc/export中加入限定
服务器端修改配置文件(rw),让客户端可以上传文件和创建的功能
服务器端修改配置文件(ro),客户端只能查看文件,不能创建文件,会提示是只读功能
4练习:服务器端普通用户上传和下载文件,
普通用户使用共享目录文件nfs时,客户端的普通用户会自动映射到服务器中的某个用户上
1)存在该客户端用户uid同服务器端用户uid相同的用户时,自动映射
例如客户端新建用户yyn,其uid为500,
在服务器端查看有无uid为500 的用户,有就自动映射成相同uid用户,(客户端yyn创建文件------就是服务器端hhp创建文件),没有则映射为nfsnobody用户
无论服务器端有无相同uid的用户,客户端用户yyn创建文件时,都会提示没有权限,因为服务器普通用户hhp没有写的权限,如何解决?
A给服务器端普通用户hhp指定uid为500,
B.服务器端将hhp赋予rwx权限----setfacl -m u:hhp:rwx /nfs
C.在客户端就可以创建文件yyn.txt
D到服务器端查看yyn.txt,发现此文件的属主和属组其实就是hhp(uid500)
E.到客户端查看yyn.txt,发现此文件的属主和属组是nobody----nobody用户是在不确定属主和属组的情况自动默认的一个用户
2)不存在相同uid用户时,客户端自动被映射成nfsnobody
24.3总结NFS服务
1.Nfs服务重要的功能:网络文件共享
1)备份数据.(相当于复制)
2.)远程yum软件仓库搭建
镜像文件-----本地软件仓库
阿里云镜像站—远程软件仓库
2.服务器如何访问镜像文件:
1).2种方式:
A)镜像文件刻录到光盘----光驱
B)光驱挂载 /dev/sr0 /mnt
2)2种方式存在问题:
A)刻录光盘-----每个服务器都要有光盘(数量非常大)
B)有些服务器上没有光驱
3…镜像文件通过网络上传服务器(Xftp5)
1)使用文件传输(xftp5) ,直接将本机上的镜像文件拖拽到虚拟机上/tmp目录下
2)针对镜像文件,使用的方法叫做挂载
使用XFTP5出现乱码如何处理—如下图操作
[root@linux1 tmp]# mkdir /data
[root@linux1 tmp]# mount /tmp/Red\ Hat\ Enterprise\ 6.5\ x86_64.iso /data
mount: /tmp/Red Hat Enterprise 6.5 x86_64.iso is not a block device (maybe try `-o loop’?)
3)三种挂载语句
mount /硬盘路径/ /挂载点
mount -t nfs(文件系统) 服务器IP地址: /服务器共享目录文件 /客户端挂载点
mount -o loop 镜像文件 挂载点-----属于本地回环挂载
通过挂载点访问镜像文件内容
4.通过网络访问----这个是最好的方法
服务器:
Mount /dev/sr0 /mnt----挂载
Vim /etc/exports ------内容为:/mnt 服务器的IP地址网段/网络前缀(ro)
客户端
Mount -t nfs 客户端IP地址:/挂载共享目录 /挂载点
编写yum配置文件即可
All_squash----对所有客户端用户进行权限压缩,一旦加上这个,就不在自动映射
Root_squash----对客户端root用户进行权限压缩