Linux - 进阶 NFS 服务器 工作原理,安装,主文件分析

news2024/9/30 3:27:13

NFS工作原理  

                示例图  : 

                

        

       我们在上篇文章也讲过, 要实现 NFS 服务的搭建,最起码得 两个 服务 ( NFS 服务,RPC

       服务)  涉及 三方  :   服务端 ( 房源 )   客户端 ( 租客,买房 )  RPC 服务 (  中介 ) )  

       流程  :  

          *    首先 服务端 启动 RPC 服务,并开启 111 端口  ( 启动后就会监听与 NFS 相关的请求)

        **    服务器端 启动 NFS 服务,并向 RPC 注册 端口信息  

             ( 卖房的人就是 NFS 服务端 会把相关信息向 RPC 进行注册,相关信息重要的就比如访

                 问连接是哪个端口 )

       ***    客户端启动 RPC ( portmap 服务 ) ,向服务端的 RPC ( portmap ) 服务请求服务

               端的NFS端口   

      ****   服务端的 RPC ( portmap ) 服务反馈 NFS 端口信息给客户端。 

            ( 服务器搭建成功后可以使用下列命令查看,一般都是 2049 ) 

[root@server ~]# cat /etc/services  | grep nfs

       

       上示命令只做了解 

NFS 的使用  : 

         

     安装 :   

           无论哪种服务,它装的这个软件都会伴随着 开发版本而不同,比如 红帽8,它就有一些服

              务就不需要装,就像 rpcbind ,就已经装过了,就在安装系统的时候就已经装过了; 

              但有的不同的开发版本就有可能还没有装这个 rpcbind ,那就得装一下,甚至安装包的名

              字也会有一些变化,这个就是需要注意的~!!!

               

               我们可以使用命令来查看一下 关于 nfs 的相关安装包 有哪些 

               ===>>> 

[root@server ~]# yum list | grep nfs 

    

    上面就显示出,所有与 NFS 有关的安装包了 ( 只要包含 nfs 的都会显示 )

    一般来讲,只要是 nfs 打头的那就是 安装包, 当然了,也要参考 后面的扩展名 

    要下 X86_64 平台的, 不能下成 32 平台的;最后两个的 .noarch 是 任何平台都能装 。

   

    好了,  公布下 nfs 的安装包  ——  nfs-utils.x86_64 

    安装 NFS  

    ===>>> 

[root@server ~]# yum install nfs-utils  -y

   上示就把 nfs 就安装好了 ( NFS 的主程序安装包  )  

    接下来,安装 RPC 

    ===>>>

[root@server ~]# yum install rpcbind -y 

   

  上面显示的就是 前面说的, rpc 已经安装了( 默认就安装了 ) 

  要注意的是 安装 RPC ,它的安装包是 rpcbind 而不是 RPC 

    

  至此, 该安装的服务就都安装完毕了 ~!!!!

配置文件 : 

主配置文件 : /etc/exports  ( 该文件不一定存在,但路径就是这个,vim 就会新建一个 )

/usr/sbin/exportfs :   是一个可执行文件, 该文件用于维护 nfs 共享目录 资源的命令文件

                                 可以使用命令重新共享 /etc/exports 的目录资源 ,也可卸载共享目录。 

日志目录 : /var/lib/nfs 

权限设置文件 : /var/lib/nfs/etab    

主配置文件分析  :  

  #     /etc/exports 文件默认为 空文件,需要输入 nfs 共享命令 

   命令的语法 : 

                 格式 :   共享目录的路径     允许访问的NFS客户端(共享权限参数) 

                              注意, 上面格式的 NFS客户端的端字和(共享权限参数)的左括号是挨着的。

                 分析 : 

                             共享目录的路径 : 就是 你想共享的那个数据/目录 的路径 

                             允许访问的 NFS 客户端 :    可以写完整的 IP 地址或 IP 网段     

                             ===>>> 

                               :  

                                          *    192.168.1.1/24

                                          *     192.168.1.0/255.255.255.0   

                                          *     192.168.1.0/24

                                          *     格式上的  “ 允许访问的NFS客户端 ”  那个位置  还可以写成 *  

                                                 这个  *   就代表 允许所有主机都可以访问 ,不限定,任意计算机。

                            

                              共享权限参数 :  必须写在圆括号中,且括号是紧挨着主机名的,权限的相关

                                                          参数如下,多个参数之间用逗号 隔开。  

                               ===>>>  

                    权限参数                 作用 
                        ro                   只读 
                        rw                 读写 ( 最终还要看文件                   系统 rwx 权限)
                        
                  root_squash 当 NFS 客户端以 root  账户访问时,映射为 NFS 服务端的匿名账户( 匿名为 nobody )
                no_root_squash当 NFS 客户端以 root 账户访问时,映射为root 账户 ( 不推荐,不安全  )
                    all_squash 无论 NFS 客户端使用什么账户访问,均映射为 NFS 服务器的匿名账户( nobody ),推荐 
                  no_all_squash 客户端普通账户访问服务器的数据时,实际的信息会原样显示。 

                  anonuid=

                  anongid=

 将文件的用户和工作组映射为指定的UID 和 GID ,若不指定则默认为 65534( nobody )
                    sync 同步,同时将数据写入内存及硬盘中,保证数据不会丢失,推荐
                    async 异步,优先将数据保存到内存,然后再写入硬盘,效率高,但可能会数据丢失。 不推荐  

                      上示表格呢,主要就是展示的是  ( 共享权限参数 )  里的内容;

                      也可以看到,上示表格 可以分了 三个段,

                      也就是说共享权限参数里要写三个方面的内容

                                   第一方面 :  文件的具体权限 

                                   

                                   第二方面  :  账户映射关系  

                                   

                                   第三方面  :  传输模式    

                       

                     示例  :  

                             *   /home/public    *(rw,sync) 

                                  ===>>>           对所有主机   共享 /home/public这个目录,

                                                          具有可读可写权限,同步传输  

                                                          可以注意到的是 共享权限参数 没有写满三个,而是两个,

                                                          少了一个  账户映射关系 ( 没有写,那就是 all_squash )

                             *  /home/public   192.168.48.130/24(rw,all_squash,sync) 

                                 ===>>>           对 192.168.48.130 这台主机 开放 共享/home/public 这个目录

                                                         具有读写权限,映射为 nobody 账户,同步传输 

                              *  /home/public   192.168.48.0/24(rw,sync,all_aquash,anonuid=2000,

                                 anongid=2000)   

                                 ===>>>   对192.168.48.0 网段所有主机开放共享 /home/public, 具有读写权

                                                限,映射为匿名账户(nobody账户),但是匿名账户的 UID,GID 不

                                                是65534嘛,按照显示修改 uid 及 gid 为2000;同步传输。 

             XXXXXX   :   还需要着重强调的一点是 

                                     ===>>> 

                                     就是我们在上示表格第三行  【  读写 ( 最终还要看文件系统 rwx 权限)】

                                     我们表格第三行的意思是说 

                                      我们表格里的 什么   ro, rw   我们说是 只读,可读可写 

                                      对着没 ??  对着呢~!! 没错,是 只读,可读可写 。 

                                      但是,要强调的是 

                                      如果 我们的 NFS 的共享权限是 rw ,而 共享文件本身 ( rwx 那个权限)

                                       要是 r-- 是 只读, 那就怎么样 ?? 

                                       最终就得以 共享文件本身的权限 ( r-- ) 只读 为准 ~!!!! 

              XXXXXX   :     我们对  账户映射关系 解释下 

                                      ===>>> 

                                      说白就是 客户端 是以什么身份 来访问这个 服务端提供上去的共享文件 

                                      我们现在不是干什么 都讲究有一个账户嘛,

                                      比如 A 想访问 B 的共享数据,那就是说 这个 A 是以什么身份来访问的 ? 

                                      如果 A 当前登录的账户是 root ,那换句话说是不是 A 以 root 账户来访问

                                      B 的共享数据的 ~!!

                                      问题是在对方的服务器上怎么体现 A 是以什么身份呢 ?? 

                                      如果直接体现的话,就是 直接显示了 A 此时的身份就是 root 了,那不就

                                      安全存在一定的隐患了,因此 就会做一个 映射 ~!!!

                                      客户端以 root 账户 来访问 服务端时,服务端就会把 root 改为 nobody 会

                                      做一个映射来保护 客户端的隐私及安全。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/737213.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何将mov转换成mp4?这篇文章教会你如何转换

MP4格式是一种通用的视频格式,几乎所有的播放器都能够支持它,包括电视、智能手机、平板电脑等等。而mov格式则主要被苹果设备所使用,其他设备可能会出现无法播放的情况。由于MP4格式的广泛兼容性,可以更方便地分享视频给其他人观看…

linux入门之进程控制(下)进程程序替换,shell运行原理,手写一个mini-shell

文章目录 一、进程程序替换 1.替换原理 2.替换函数 3.函数解释 4.命名理解 二、手写一个mini Shell 一、进程程序替换 创建子进程的目的就是为了让子进程执行特定的任务,比如:1.让子进程执行父进程的一部分代码;2.让子进程指向一个全新的程序…

java项目之高校二手交易平台(ssm+mysql+jsp)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的高校二手交易平台。技术交流和部署相关看文章末尾! 开发环境: 后端: 开发语言:Java 框架…

建站教程:阿里云轻量应用服务器搭建网站流程

阿里云轻量应用服务器怎么使用?阿里云百科分享轻量应用服务器从选配、配置建站环境、轻量服务器应用服务器远程连接、开端口到网站上线全流程: 阿里云轻量应用服务器使用教程 轻量应用服务器很火爆因为成本足够低,阿里云2核2G3M带宽轻量服务…

基于Linux下的C语言项目实战--本地账号管理系统

C语言开发项目实战: C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能&#xff…

SpringBoot中间件—封装超时熔断器

需求背景 如果一个服务中有很多涉及需要服务间熔断的地方,就会出现N多下述代码: 1.N个fegnClient接口 FeignClient(name "hello-world-service", fallback HelloWorldFallback.class) public interface HelloWorldService {GetMapping(&q…

U盘写保护怎样去掉?分享3种简单方法!

不知道为什么我的u盘突然就显示被写保护了呢,大家有没有遇到过类似的情况呀?有什么比较好的解决方法可以推荐一下吗? 很多朋友可能对u盘写保护没有什么概念,实际上,u盘写保护可能会阻止我们对其中的文件进行修改或者添…

含生僻字中文校验方式优化

项目姓名校验原本一直是通过utf8正则进行校验,但近期出现的客户生僻字包含双码字,原有校验方式无法实现。需要修改扩大校验范围。 知识点回顾: Unicode是Unicode Standard(Unicode标准)的简写;Unicode为每…

HNU-操作系统OS-学习感悟

初次接触如此底层的计算机基础课程,我还是很不适应的。 教材用的这本书,实验用的清华大学的ucore实验 好在应试水平没有丢。最后总评94/100。 下面仅从应试角度谈一谈学习的理解 总领 HNU的OS课程平时分给的比较模糊,大致由 作业实验验…

先导式比例溢流阀放大器

EDBW10PL350XY/224、EDBW20PL210XY/724、EDBW30PL105XY/224、EDBW10PL055XY/224先导式比例溢流阀,板式安装,由主阀芯和先导级阀beuec比例放大器组成:先导级阀为比例溢流阀,主阀阅芯可独立调节压力作为安全限压压力,比例先导阀压力…

selenium怎么使用代理IP

什么是selenium Selenium 是一个自动化测试框架,用于测试 Web 应用程序的功能性。它支持多个编程语言(如Java,Python,C#等)并且可以在操作系统和不同浏览器上运行测试。Selenium 可以模拟用户在浏览器中的操作&#x…

PC端实现滚动分页懒加载

思路 监听列表元素的滚动事件&#xff0c;滚动到底部的时候&#xff0c;加载下一页的数据监听数据加载&#xff0c;判断是否已全部加载结束 实现 监听滚动事件 为列表元素 listBox 绑定 scroll 事件进行监听 <div class"listBox" scroll"watchScroll&qu…

Github点赞120k的Spring全家桶笔记,吃透Offer拿到手软!

Spring框架自诞生以来一直备受开发者青睐&#xff0c;有人亲切的称之为&#xff1a;Spring 全家桶。它包SpringMVC、SpringBoot、Spring Cloud、Spring Data等解决方案。 很多研发人员把spring看作心目中最好的java项目&#xff0c;没有之一。Spring系列包含非常多的项目&…

【LLM】DeepSpeed分布式训练框架

文章目录 一、DeepSpeed介绍1. 分布式背景介绍2. deepspeed介绍 二、deepspeedtransformer代码实战1. 预处理和Json文件2. 训练代码 三、deepspeed加速Bloom lora微调1. 配置文件2. 训练代码 Reference 一、DeepSpeed介绍 1. 分布式背景介绍 分布式计算环境中&#xff0c;主节…

进程间通信方法——命名管道

命名管道 匿名管道应用的一个限制就是只能在具有共同祖先&#xff08;具有亲缘关系&#xff09;的进程间通信。如果我们想在不相关的进程之间交换数据&#xff0c;可以使用FIFO文件来做这项工作&#xff0c;它经常被称为命名管道。&#xff08;命名管道是有文件名的&#xff0…

Vs窗口布局移动窗口vs直接卡死2

(1条消息) Vs窗口布局移动窗口vs直接卡死_vs拖动窗口布局卡死_Ma_Hong_Kai的博客-CSDN博客 由于莫名其妙的更新导致又卡死了&#xff0c;导致最近一年多无法拖动vs的框挺折磨 前一段时间看到一个有意思的命令 搞了搞了 可以拖动了&#xff08;目测应该是微软自己发现这个问…

【图像识别】openCV基础知识

图像处理基础 一、使用OpenCV前要准备的工作1.先导入需要用到的库2.自定义&#xff0c;图片展示函数 二、开始学习常用函数1.生成随机整数①. 函数说明②.代码a. 二维灰度图b. 三维彩色图 ③.代码现象a. 二维灰度图b. 三维彩色图 2.通道的分离与合并①先导入一张图片② 将其RGB…

多元回归预测 | Matlab基于麻雀算法(SSA)优化高斯过程回归(SSA-GPR)的数据回归预测,matlab代码,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab基于麻雀算法(SSA)优化高斯过程回归(SSA-GPR)的数据回归预测,matlab代码,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源…

合宙Air001震撼来袭!

Air001芯片特性 采用ARM 32位的M0内核&#xff0c;主频可达48MHz&#xff1b; 4K RAM32K Flash&#xff1b; 1.7&#xff5e;5.5V超宽范围供电&#xff0c;USB和电池都能直接供电&#xff1b; 内嵌可配4/8/16/22.12/24MHz的RC振荡器&#xff0c;无需外挂晶振就能48MHz运行…

你连存活到JDK8中著名的Bug都不知道,你怎么敢跳槽涨薪的?

在笔者研究 JDK 源码时&#xff0c;注意到在CopyOnWriteArrayList 和ArrayList 的构造器中都出现了如下 bug 字样 6260652 其实代表的JDK bug 列表中的编号 http://bugs.java.com/bugdatabase/view_bug.do?bug_id6260652 http://bugs.java.com/bugdatabase/view_bug.do?bug…