NFS(文件共享)

文章目录

  • NFS(文件共享)
    • 关于NFS的基本配置和权限的设置
      • 服务端配置
      • 客户端配置
    • 基于kerberos的NFS
      • 服务端配置
      • 客户端配置:

NFS(文件共享)

关于NFS的基本配置和权限的设置

NFS(文件共享)_第1张图片
nfs相当于类unix之间一种文件的共享
只要编辑/etc/exports或者在/etc/exports.d/里创建一个后缀为exports的文件即可。
在这里插入图片描述

服务端配置

如果你是最小化安装的系统,默认是没有nfs这个服务的,所以最小化安装的系统,需要先安装nfs服务: yum install -y nfs-u*
安装完毕以后,先把nfs-servcer 这个服务启动起来
然后再防火墙中把nfs,rpc,mountd3个服务开放,并且/etc/exports目录是默认是没有任何东西的,如下图:
NFS(文件共享)_第2张图片
只需要编辑/etc/exports或者在/etc/exports.d/里创建后缀为exports的文件即可(建议使用前者)
语法是:
/共享目录 客户端1(权限a,权限b,权限c,…)客户端2(权限x,权限y,…)
上述是一行写的,也可以分成多行写,如下:
/共享目录 客户端1(权限a,权限b,权限c,…)
/共享目录 客户端2(权限x,权限y,…)
把需要挂载的目录写到/etc/exports中,指定目录和共享目的ip
exportfs -arv :刷新/etc/exports列表(因为一开始就启动了nfs-server,如果修改/etc/exports文件的时候,就不需要再次重启,直接刷新即可)
把文件写到/etc/exports,并刷新后,服务端便配置完成
NFS(文件共享)_第3张图片

客户端配置

showmount -e 服务器ip :查看分享(配置)详细
然后mkdir创建任意目录用来当做挂载路径,
mount 服务器ip:分享路径 挂载路径
df -h 查看是否挂载成功
客户端配置完成
NFS(文件共享)_第4张图片
配置完成后,在挂载的路径/nfs中写入数据,实际上都是放在服务器端共享的存储中,现在以root用户任意创建一个文件,会发现写不进去,报错提示权限不够,实际上我们分享的时候已经指定rw权限了,并且也是root用户,按理说不应该出现权限不够的问题,其实这是nfs本身机制导致的
在这里插入图片描述
处理方法有2种:
1、我们先看一下nfs的默认选项cat /var/lib/nfs/etab
在这里插入图片描述
可以看到其中有一项是root_squash,该项是压缩root权限的意思,还有一项是:anonuid=65534,该项意思是把root权限压缩为uid为65534用户的权限,我们来看一下uid为65534的用户名为nfsnobady
在这里插入图片描述
而nfsnobody属于other用户, 本身是无法使用x权限的,所以需要给nfsnobody加一个w权限:chmod o+w 共享目录名,如共享目录名称是/film/:chmod o+w /film/
在这里插入图片描述
2、在/etc/exports中共享目录的时候加上权限:no_root_squash,意思是不压缩root权限:
在这里插入图片描述
注:修改后不要重启服务,使用exportfs -arv 刷新即可
上诉2个解决方法使用其中任意一个均可,操作完任意一个后,再次创建一个文件到挂载共享目录,发现正常:
在这里插入图片描述
特殊使用:
如:我现在想让192.168.26.200可以写,其他客户端不能写(只读)
vi /etc/exports , 注意:其实掩码默认是24位的,因为这里需要单独把200放开,所以需要把200的掩码改为32位,注:第二个ip前面有一个空格
在这里插入图片描述
exportfs -avr 刷新 即可

基于kerberos的NFS

NFS(文件共享)_第5张图片

服务端配置

1、 先下载krb5.keytab:wget http://host.rhce.cc/materials/nfs_server.keytab -O /etc/krb5.keytab
在这里插入图片描述
2、 修改他的上下文:chcon -R -t public_content_t 共享目录 因为共享的时候需要把上下文一起共享出去
NFS(文件共享)_第6张图片
3、 修改配置文件把上下文也共享出去:vi /etc/sysconfig/nfs
找到RPCNFSDARGS,后面加上 “-V 4.2”
在这里插入图片描述
4、 吧这个目录共享出去:vi /etc/exports
编辑 /共享目录 *(rw,sync,sec=krb5p) 注:*是所有ip的意思
NFS(文件共享)_第7张图片
5、 启动和安全相关的nfs服务并设置开启自启:systemctl start nfs-secure-server , systemctl enable nfs-secure-server ,然后重启一下nfs-server:systemctl restart nfs-server
在这里插入图片描述
6、 把挂载目录的权限改为某个用户的权限(可为root,也可以为普通用户):chown 用户名 挂载目录
在这里插入图片描述
(主要用于网络用户ssh的时候看得出区别)
作用测试(system2配置完毕的客户端,所以这部需把客户端配置完毕后操作):
NFS(文件共享)_第8张图片
服务端配置完毕

客户端配置:

查看共享文件:showmount -e 服务端主机名(也可ip):
在这里插入图片描述
说一下普通方式共享的文件写入/etc/fstab的方法:
在这里插入图片描述
写入保存后 mount -a 即可自动挂载:
NFS(文件共享)_第9张图片
kerberos保护的文件挂载需要kerberos秘钥,所以也需要安装相同目录的krb5:
1、 wget http://host.rhce.cc/materials/nfs_client.keytab -O /etc/krb5.keytab
在这里插入图片描述
2、 vi /etc/fstab
NFS(文件共享)_第10张图片
如:一般可能没有设置长主机名,就设置了主机名:hostname -f 查看长主机名
在这里插入图片描述
解释一下:主机名就是主机名-hostname
IP就是IP-ifconfig
长主机名就是长主机名(也俗称带域名)-hostname -f
短主机名就是短主机名-设置了长主机名的话,第一个 . 前面的内容便是短主机名
3、 启动服务并设置开机自启:systemctl start nfs-secure , systemctl enable nfs-secure
4、 mount -a 挂载即可:
NFS(文件共享)_第11张图片

你可能感兴趣的:(linux,or,运维,nfs,文件共享)