实验三——NFS服务器配置

实验名称:

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

实验目的:

    1. 了解NFS服务的基本原理
    2. 掌握NFS服务器的配置与调试方法
    3. 掌握NFS故障排除的技巧

 

 

1、简单文字说明,关键位置截图补充,NFS配置文件中的相关命令,标明注释。

2、实验过程中,出现任何错误,详细描述排错的过程。

3、实验完成后,当场演示实验结果。

一、项目需求

一个小组(公司技术部)共同开发一个项目,

所有的项目文件都存放在NFS服务器一个共享目录(/home/project)。要求:

技术部每位成员在共享目录/home/project新建的文件都属于技术部组,

属主保持不变。

技术部每位成员都可以对其他用户(root用户除外)建立的文件进行读写操作,

但每位用户只能删除自己的文件,不能删除其他用户建立的文件。

二、简单规划

共享目录/home/project的权限设置:指定所属组,设置目录的强制位和防删除位。

NFS服务器端用户:zhangsan,lisi都属于jishubu组,客户端用户:

zhangsan,lisi都属于jishubu组,

且与NFS服务器端的id,组id保持一致。(用户身份重叠)

其他用户(除root外)的设置:no_all_squash:共享目录的用户和组维持不变。默认值。

root用户的设置,使用默认安全的值,即:root_squash

root_squash:在登录NFS主机使用共享目录的用户如果是root

,那么这个用户的权限将被压缩成匿名用户

,通常它的UID与GID都会变成nobody(nfsnobody)这个系统账号的身份。默认值。

三、服务器端参考步骤

安装nfs-utils

启动rpcbind,nfs

查询一下NFS的各个进程是否在正常运行:

rpcinfo -p |grep nfs; rpcinfo -p |grep mountd

添加用户组、用户

创建共享目录/home/project

修改NFS配置文件

Vim /etc/exports

重启NFS,或者exportfs –r (重新发布所配置的的共享目录)

关闭防火墙、SELinux

客户端设置、测试

四、NFS服务器端配置过程

1、安装软件包

  1. yum install -y nfs-utils

实验三——NFS服务器配置 Linux 第1张实验三——NFS服务器配置 Linux 第2张

2、启动服务

  1. [root@@NFS ~]# systemctl restart rpcbind
  2. [root@@NFS ~]# systemctl restart nfs //修改配置文件后必须重启服务
  3. [root@l@NFS ~]# systemctl enable rpcbind //开启启动
  4. [root@@NFS ~]# systemctl enable nfs //开启启动

实验三——NFS服务器配置 Linux 第3张实验三——NFS服务器配置 Linux 第4张

3、查询一下NFS 的各个进程是否在正常运行

  1. [root@@NFS ~]# rpcinfo -p |grep nfs
  2. [root@@NFS ~]# rpcinfo -p |grep mountd

实验三——NFS服务器配置 Linux 第5张实验三——NFS服务器配置 Linux 第6张

// -p(probe,探测)列出所有在host 用portmap 注册的RPC 程序,如果没有指定host,就查找本机上的RPC 程序。

4、添加用户组、用户

  1. [root@@NFS ~]# groupadd jishubu
  2. [root@@NFS ~]# useradd -s /sbin/login -u 1001 -G jishubu zhangsan
  3. [root@@NFS ~]# useradd -s /sbin/login -u 1002 -G jishubu lisi

实验三——NFS服务器配置 Linux 第7张实验三——NFS服务器配置 Linux 第8张

5、创建共享目录/home/project

  1. [root@@NFS ~]# mkdir /home/project 2
  2. [root@@NFS ~]# chgrp -R jishubu /home/project2
  3. [root@@NFS ~]# chmod 3770 -R /home/project2
  4. [root@@NFS ~]# ll -d /home/project 2
  5. [root@@NFS ~]# cd /home/project 2
  6. [root@@NFS ~]# mkdir laoda //测试
  7. [root@@NFS ~]# touch laoda.t //测试

实验三——NFS服务器配置 Linux 第9张实验三——NFS服务器配置 Linux 第10张

6、编辑/etc/exports 内容

  1. [root@NFS ~]# vim /etc/exports
  2. /home/project 192.168.40.0/24(rw)

实验三——NFS服务器配置 Linux 第11张实验三——NFS服务器配置 Linux 第12张

7、重启NFS,或者exportfs –r (重新发布所配置的的共享目录)

  1. [root@xhq project2]# systemctl start rpcbind
  2. [root@xhq project2]# systemctl start nfs
  3. [root@xhq project2]# systemctl enable nfs
  4. [root@xhq project2]# systemctl enable rpcbind

实验三——NFS服务器配置 Linux 第13张实验三——NFS服务器配置 Linux 第14张

或者

  1. exportfs -arv

实验三——NFS服务器配置 Linux 第15张实验三——NFS服务器配置 Linux 第16张

注意:如果出现这种情况

[root@xhq etc]# exportfs –v

exportfs: Invalid export syntax: –v

可以键入exportfs –a后再次输入exportfs –rv

 

8、关闭防火墙、SELinux

  1. [root@xhq /]# setenforce 0
  2. [root@xhq /]# systemctl disable firewalld

实验三——NFS服务器配置 Linux 第17张实验三——NFS服务器配置 Linux 第18张

五、客户端配置

1、安装软件包yum install -y nfs-utils

  1. [root@client /]# yum install -y nfs-utils

实验三——NFS服务器配置 Linux 第19张实验三——NFS服务器配置 Linux 第20张

2、在客户端查看NFS 服务器共享出来目录

  1. [root@client /]# showmount -e 192.168.2.131

实验三——NFS服务器配置 Linux 第21张实验三——NFS服务器配置 Linux 第22张

3、挂载/home/project 目录到客户端/mnt/project 目录下

  1. [root@client ~]# mkdir /mnt/project2
  2. [root@client ~]# mount -t nfs 192.168.2.131:/home/project2  /mnt/project2
  3. [root@client ~]# df -hT //查看挂载是否成功

实验三——NFS服务器配置 Linux 第23张

4、客户端创建用户(和服务器端的用户id,组id 保持一致)

  1. [root@cilent ~]# groupadd -g 1002 jishubu
  2. [root@cilent ~]# useradd -u 1001 -G jishubu zhangsan
  3. [root@cilent ~]# useradd -u 1003 -G jishubu lisi

实验三——NFS服务器配置 Linux 第24张实验三——NFS服务器配置 Linux 第25张

后期修改:实验三——NFS服务器配置 Linux 第26张实验三——NFS服务器配置 Linux 第27张

 

说明:对于Linux系统而言,区分不同用户的唯一标识就是uid,至于用户名只是为了方便人类理解。所以在系统层面,

无论是zhangsan用户还是lisi用户,只要他们的uid一样,就认为是同一个用户。但也正是因为这个原因,才会导致出

现用户身份重叠的问题,对于NFS服务而言,这也是一个比较严重的安全隐患。

5、客户端测试

  1. [root@client ~]# su zhangsan
  2. [zhangsan@client root]$ cd /mnt/project
  3. [zhangsan@client project]$ mkdir zhangsan
  4. [zhangsan@client project]$ touch zhsan.t
  5. [zhangsan@client project]$ su lisi
  6. 密码:
  7. [lisi@client project]$ mkdir lisi
  8. [lisi@client project]$ touch lisi.t

 实验三——NFS服务器配置 Linux 第28张实验三——NFS服务器配置 Linux 第29张实验三——NFS服务器配置 Linux 第30张实验三——NFS服务器配置 Linux 第31张

注意:1.如果出现

实验三——NFS服务器配置 Linux 第32张实验三——NFS服务器配置 Linux 第33张

可以在本地root用户下使用 passwd lisi 重新修改一次密码即可

创建的文件及目录都属于jishubu 组。

实验三——NFS服务器配置 Linux 第34张实验三——NFS服务器配置 Linux 第35张

继续测试,lisi 可以修改zhangsan 的文件,但不能删除,与需求相符。

实验三——NFS服务器配置 Linux 第36张实验三——NFS服务器配置 Linux 第37张

注意:如果可以删除 需要在服务端修改下共享目录的文件夹权限。

6、客户端切换到root 账户,测试发现:

实验三——NFS服务器配置 Linux 第38张实验三——NFS服务器配置 Linux 第39张

分析原因:root 用户的设置,使用默认安全的值,即:root_squash,用户的权限将被压缩成匿名用户,

不属于jishubu 组,而/home/project 目录对其他用户没有执行的权限(即进入目录的权限)。

修改NFS 服务器的配置文件:

添加:anongid=1000(技术部组的id),实验部分的标准配置如下图所示

实验三——NFS服务器配置 Linux 第40张实验三——NFS服务器配置 Linux 第41张

实验三——NFS服务器配置 Linux 第42张实验三——NFS服务器配置 Linux 第43张

注意:不要忘记rw后的“,”否则会报错

实验三——NFS服务器配置 Linux 第44张实验三——NFS服务器配置 Linux 第45张

说明:anonuid/anongid:要和root_squash 以及all_squash 选项一同使用,用于指定使用NFS 的用户被限定后的uid 和gid,但前提是本机的/etc/passwd 中存在相应的uid 和gid。

7、永久挂载

[root@Client project]# vim /etc/fstab //编辑开启自动挂载文件

实验三——NFS服务器配置 Linux 第46张实验三——NFS服务器配置 Linux 第47张

1、RPC服务重新启动后,为何要重新启动NFS服务?

 

NFS是Network File System的缩写,即网络文件系统,一种使用于分散式文件协定,

功能是通过网络让不同的机器、不同的操作系统能够共享个人数据。

NFS在文件传输过程中依赖于RPC协议(Remote Procedure Call,

远程过程调用,是使客户端能够执行其他系统中程序的一种机制),NFS本身没有

提供信息传输的协议和功能,可以认为它是使用RPC协议的一个程序。

NFS服务器、RPC、客户端三者交互的关系如下图:

 

 

 

 

 

 

 

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄