实验三——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. [Python] 使用Python 3 下载麦子学院视频

    本文基于Python 3,下载麦子学院的视频课程. 本项目只是针对某个具体课程的链接,去寻找该课程所有课时的视频链接并进行下载. 整个项目是非常简单的. 主要涉及的Python: 网络相关:reque ...

  2. deeplearning.ai 序列模型 Week 1 RNN(Recurrent Neural Network)

    1. Notations 循环序列模型的输入和输出都是时间序列.$x^{(i)<t>}$表示第$i$个输入样本的第$t$个元素,$T_x^{(i)}$表示输入的第$i$个样本的元素个数:$ ...

  3. 1076 Wifi密码 (15 分)

    题目:传送门 下面是微博上流传的一张照片:“各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题答案:A-1:B-2:C-3:D-4:请同学们自己 ...

  4. cxf整合spring代码

    导入jar包cxf的jar包 创建实体类 package com.yhd.webservice.cxf.server.poto; public class Person { private Strin ...

  5. valgrind 的使用简介

    zz自 http://blog.csdn.net/destina/article/details/6198443  感谢作者的分享! 一  valgrind是什么? Valgrind是一套Linux下 ...

  6. 我是一个Bug, 终极大Bug

    我是一个Bug ,在这个系统中潜伏很久了,历经多轮测试的严酷考验而屹立不倒,如果Bug界按难度分类的话,我绝对属于地狱模式. 现在,我就等待一个倒霉蛋来触发, 可是他老是不来. 其实不能叫倒霉蛋 , ...

  7. 查询优化基础知识 - chendh blog

    概述 处理一个给定的查询,尤其是复杂查询,通常会有许多种策略,查询优化就是从这许多策略中找出最有效的查询执行计划的处理过程. 查询执行计划的步骤 产生逻辑上与给定表达式等价的表达式: 估计每个执行计划 ...

  8. LoraLU

    一.定义动画过程中形成的状态用transform transform 分为2D 和 3D,主要包含以下几种变换:旋转rotate.扭曲skew.缩放scale和移动 translate以及矩阵变形ma ...

  9. Python3爬虫:(一)爬取拉勾网公司列表

    人生苦短,我用Python 爬取原因:了解一下Python工程师在北上广等大中城市的薪资水平与入职前要求. Python3基础知识 requests,pyquery,openpyxl库的使用 爬取前的 ...

  10. HEXO+Git+Github+域名搭建个人博客

    搭建个人博客可以分为以下五个部分 一.搭建本地环境(个人为Win10) 1.安装Git,下载地址:点击 下载后,按提示进行安装即可,作用是:把本地的内容提交到github上去 注意:官网下载速度不是很 ...