实验三——NFS服务器配置

实 验 基 本 信 息

实验名称:NFS服务器配置(3学时)

实验时间:    年 月 日

实验地点:   信工606实验室

同组同学:

实验目的:

    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

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 //开启启动

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

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

// -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

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 //测试

6、编辑/etc/exports 内容

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

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

或者

  1. exportfs -arv

注意:如果出现这种情况

[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

五、客户端配置

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

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

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

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

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 //查看挂载是否成功

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

后期修改:

说明:对于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

注意:1.如果出现

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

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

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

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

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

⚫ 分析原因:root 用户的设置,使用默认安全的值,即:root_squash,用户的权限将被压缩成匿名用户,不属于jishubu 组,而/home/project 目录对其他用户没有执行的权限(即进入目录的权限)。

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

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

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

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

7、永久挂载

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

回答问题

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

NFS是Network File System的缩写,即网络文件系统,一种使用于分散式文件协定,功能是通过网络让不同的机器、不同的操作系统能够共享个人数据。

NFS在文件传输过程中依赖于RPC协议(Remote Procedure Call,远程过程调用,是使客户端能够执行其他系统中程序的一种机制),NFS本身没有提供信息传输的协议和功能,可以认为它是使用RPC协议的一个程序。

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

实验三——NFS服务器配置的更多相关文章

  1. NFS笔记(二)NFS服务器配置实例

    一.NFS服务器配置实例实验拓扑 二.实验要求及环境 2.1实验环境 NFS服务器 IP:192.168.8.5环境:[root@server7 ~]# uname -aLinux server7.c ...

  2. CentOS下NFS服务器配置教程

    说明: NFS服务器: 操作系统:CentOS 5.5 IP:192.168.21.160 nfs网络文件服务器共享目录:/data/osyunwei 目录所有者:www(说明:www为nginx运行 ...

  3. FPGA与simulink联合实时环路系列——实验三 按键key

    实验三 按键key 实验内容 在FPGA的实验中,经常涉及到按键的使用,按键是必不可少的人机交互的器件之一,在这些实验中,有时将按键的键值读取显示到数码管.LCD或者是通过串口传送到PC的串口助手上进 ...

  4. Java实验三

    20145113 20145102实验三 实验步骤 编码标准 编程标准包含:具有说明性的名字.清晰的表达式.直截了当的控制流.可读的代码和注释,以及在追求这些内容时一致地使用某些规则和惯用法的重要性 ...

  5. Verilog HDL那些事_建模篇笔记(实验三:按键消抖)

    实验三:按键消抖 首先将按键消抖功能分成了两个模块,电平检查模块和10ms延迟模块.电平检测模块用来检测按键信号的变化(是否被按下),10ms延迟模块用来稳定电平检查模块的输入,进而稳定按键信号,防止 ...

  6. 20145229&20145316 《信息安全系统设计基础》实验三 实时系统的移植

    实验封面 实验内容 1.安装ADS(安装文件在00-ads1.2目录下,破解方法00-ads1.2\Crack目录下) 2.安装GIVEIO驱动(安装文件在01-GIVEIO目录下) 3.把整个GIV ...

  7. 20145301&20145321&20145335实验三

    20145301&20145321&20145335实验三 这次实验我的组员为:20145301赵嘉鑫.20145321曾子誉.20145335郝昊 实验内容详见:实验三

  8. 20145212 实验三《敏捷开发与XP实践》

    20145212 实验三<敏捷开发与XP实践> 实验内容 使用git上传代码 与20145223同学一组,使用git相互更改代码 同组实验报告链接:http://www.cnblogs.c ...

  9. 20145213《Java程序设计》实验三敏捷开发与XP实践

    20145213<Java程序设计>实验三敏捷开发与XP实践 实验要求 1.XP基础 2.XP核心实践 3.相关工具 实验内容 1.敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法 ...

随机推荐

  1. EmguCV C# 安装入门教程

    EmguCv3的安装. EmguCv3下载网址 http://sourceforge.net/projects/emgucv/files/emgucv/3.0.0/ 推荐下载第一个: 点击direct ...

  2. linux awk详解

    awk: awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑, awk在其对数据分析并生成报告时,显得尤为强大. 简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开 ...

  3. FFT(快速傅里叶变换) 模板

    洛谷 P3803 [模板]多项式乘法(FFT)传送门 存个板子,完全弄懂之后找机会再写个详解. #include<cstdio> #include<cmath> struct ...

  4. Zabbix调用外部脚本发送邮件:python编写脚本

    Zabbix调用外部脚本发送邮件的时候,会在命令行传入两个参数,第一个参数就是要发送给哪个邮箱地址,第二个参数就是邮件信息,为了保证可以传入多个参数,所以假设有多个参数传入 #!/usr/bin/en ...

  5. 微软研究员Eric Horvitz解读 “人工智能百年研究”

    本文翻译自ScienceInsider"A 100-year study of artificial intelligence? Microsoft Research's Eric Horv ...

  6. 3DMAX卸载/完美解决安装失败/如何彻底卸载清除干净3DMAX各种残留注册表和文件的方法

    在卸载3dmax重装3dmax时发现安装失败,提示是已安装3dmax或安装失败.这是因为上一次卸载3dmax没有清理干净,系统会误认为已经安装3dmax了.有的同学是新装的系统也会出现3dmax安装失 ...

  7. WordPress调用page页面内容方法

    WordPress调用page页面内容方法,有时候在特殊条件下,原有的wordpress页面获取内容代码不能正常使用,这个时候不能通过wordpress自带的模板标签输出,就需要改变下方式,通过PHP ...

  8. (七)spring+druid多数据源配置

    druid多数据源配置 一.druid简介 Druid首先是一个数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQL Parser. ...

  9. js 实现排序算法 -- 选择排序(Selection Sort)

    原文: 十大经典排序算法(动图演示) 选择排序(Selection Sort) 选择排序(Selection-sort)是一种简单直观的排序算法.它的工作原理:首先在未排序序列中找到最小(大)元素,存 ...

  10. spring提供的事务配置--纯注解

    spring提供的事务--纯注解 模拟转账业务  ,出错需要事务回滚,没错正常执行 事务和数据库技术都是spring的内置提供的 --------dao包--------------- IAccoun ...