linux主机搭建NFS服务器

NFS(Network File System,网络文件系统)

它允许网络中的计算机(不同的计算机、不同的操作系统)之间通过TCP/IP网络共享资源,主要在unix系列操作系统上使用。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中看来,那个远程主机的目录就好像是自己的一个磁盘分区一样。

因为NFS的端口并不固定,导致客户端连接连接服务器产生问题,原因就在于客户端并连接服务器是需要知道服务器端的端口才能进行连接,

为了解决这一办法,此时就需要RPC(Remote Procedure Call,远程过程调用)的服务,当服务器在启动NFS时会随机选取数个端口号,并主动向RPC注册,所以RPC知道每个NFS功能所对应的端口号,RPC将端口号通知给客户端,让客户端可以连接到正确的端口上去。RPC采用固定端口号port 111来监听客户端的需求并向客户端响应正确的端口号。

即nfs服务需要搭配RPC服务运行才行

搭建NFS服务器要求

架设一台NFS服务器,并按照以下要求配置
1、开放/nfs/shared目录,供所有用户查询资料
2、开放/nfs/upload目录,为192.168.xxx.0/24网段主机可以上传目录,并将所有用户及所属的组映射为nfs-upload,其UID和GID均为2100
3、将/home/tom目录仅共享给192.168.xxx.xxx这台主机,并只有用户tom可以完全访问该目录

配置

主配置文件进行配置

主配置文件:/etc/exports

分析:

1、创建/nfs/shared目录,供所有用户查询资料,则在配置文件中写入共享的目录及权限为只读(ro权限)即可

2、创建/nfs/upload目录,为192.168.217.0/24网段主机可以上传目录,则该共享目录权限给读写权限(rw权限),因为所有用户及所属的组映射为nfs-upload,其UID和GID均为210,则写入all_squash ,anonuid=2100, anongid=2100

3、创建home/tom目录,写入只有192.168.217.133/24(客户端ip),只有用户tom可以完全访问该目录,则写入rw权限,

配置环境:

[root@server ~]# systemctl stop firewalld
[root@server ~]# setenforce 0
[root@server ~]# yum install nfs-utils rpcbind -y

1、开放/nfs/shared目录,供所有用户查询资料  

服务端:

[root@server ~]# systemctl start nfs-server  把rpc和nfs服务合并了直接启动即可
[root@server ~]# mkdir -p /nfs/shared #先创一个目录文件
[root@server ~]# touch /nfs/shared/资料{a..f}  #创几个资料文件做模拟
[root@server ~]# ll /nfs/shared/ 查看server端的文件
总用量 0
-rw-r--r--. 1 root root 0 1月  13 23:52 资料a
-rw-r--r--. 1 root root 0 1月  13 23:52 资料b
-rw-r--r--. 1 root root 0 1月  13 23:52 资料c
-rw-r--r--. 1 root root 0 1月  13 23:52 资料d
-rw-r--r--. 1 root root 0 1月  13 23:52 资料e
-rw-r--r--. 1 root root 0 1月  13 23:52 资料f
[root@server ~]# vim /etc/exports 打开nfs的配置文件
/nfs/shared     *(ro)   
要分享的目录   *代表所有用户 ()中的ro代表只读权限
~                                                                               
~                                                                               
~       
[root@server ~]# exportfs -ra  导出配置文件生效
[root@server ~]# showmount -e  查看共享的目录
Export list for server:
/nfs/shared *

客户端:

[root@Node1 ~]# showmount -e 192.168.217.132  显示服务器分享过来的目录
Export list for 192.168.217.132:
/nfs/shared *
[root@Node1 ~]# mkdir /test   准备搭建文件系统
[root@Node1 ~]# mount 192.168.20.133:/nfs /test  通过-o参数挂载
[root@Node1 ~]# cd /test/ 查看是否可以看到
[root@Node1 test]# ll
总用量 0
drwxr-xr-x. 2 root root 96 11月  1月  13 shared
[root@Node1 test]# ll shared/
总用量 0
-rw-r--r--. 1 root root 0 1月  13 23:52 资料a
-rw-r--r--. 1 root root 0 1月  13 23:52 资料b
-rw-r--r--. 1 root root 0 1月  13 23:52 资料c
-rw-r--r--. 1 root root 0 1月  13 23:52 资料d
-rw-r--r--. 1 root root 0 1月  13 23:52 资料e
-rw-r--r--. 1 root root 0 1月  13 23:52 资料f

2、上传文件的操作

服务端:

[root@server ~]# mkdir /nfs/upload
[root@server ~]# touch /nfs/upload/资料{1..5}
[root@server ~]# ll /nfs/upload/
总用量 0
-rw-r--r--. 1 root root 0 1月  13 00:23 资料1
-rw-r--r--. 1 root root 0 1月  13 00:23 资料2
-rw-r--r--. 1 root root 0 1月  13 00:23 资料3
-rw-r--r--. 1 root root 0 1月  13 00:23 资料4
-rw-r--r--. 1 root root 0 1月  13 00:23 资料5
[root@server ~]# vim /etc/exports
/nfs/shared     *(ro)
/nfs/upload     192.168.217.0/24(rw,all_squash,anonuid=2100,anongid=2100)
[root@server ~]# groupadd -g 2100 nfs-upload
[root@server ~]# useradd -u 2100 -g 2100 nfs-upload
[root@server ~]# tail -1 /etc/passwd
nfs-upload:x:2100:2100::/home/nfs-upload:/bin/bash
[root@server ~]# showmount -e
Export list for server:
/nfs/shared *
/nfs/upload 192.168.217.0/24

 同时需要注意/nfs/uplaod 的权限问题,要想让映射用户可以用创建文件,那么就需要其他人的读权限。

[root@server home]# chmod o+w /nfs/upload/
[root@server home]# ll /nfs/
总用量 0
drwxr-xr-x. 2 root root 96 1月  13 23:52 shared
drwxr-xrwx. 2 root root 81 1月  13 00:23 upload

客户端:

客户端192.168.20.141可以访问到,

[root@Node1 test]# showmount -e 192.168.20.133
Export list for 192.168.20.133:
/nfs/shared *
/nfs/upload 192.168.100.0/24 
[root@Node1 test]# mount 192.168.20.133:/nfs/ /test/ 通过读写方式挂载
[root@Node1 test]# cd /test/
[root@Node1 test]# ll upload/
总用量 0
-rw-r--r--. 1 root root 0 1月  13 00:23 资料1
-rw-r--r--. 1 root root 0 1月  13 00:23 资料2
-rw-r--r--. 1 root root 0 1月  13 00:23 资料3
-rw-r--r--. 1 root root 0 1月  13 00:23 资料4
-rw-r--r--. 1 root root 0 1月  13 00:23 资料5
[root@Node1 upload]# touch a
[root@Node1 upload]# ll
总用量 0
-rw-r--r--. 1 root root 0 1月  13 00:23 资料1
-rw-r--r--. 1 root root 0 1月  13 00:23 资料2
-rw-r--r--. 1 root root 0 1月  13 00:23 资料3
-rw-r--r--. 1 root root 0 1月  13 00:23 资料4
-rw-r--r--. 1 root root 0 1月  13 00:23 资料5
-rw-r--r--. 1 2100 2100 0 1月  13 00:35 a

可以看到新建的文件的uid和gid都是2100.

3、将/home/tom目录仅共享给192.168.100.136这台主机,并只有用户tom可以完全访问该目录

服务端:

把共享文件的所属用户和所属组改为tom即可

[root@server home]# mkdir /nfs/tom  新建一个共享目录
[root@server home]# useradd tom    新建一个tom用户
[root@server home]# chown tom:tom /nfs/tom    修改所属用户所属组
[root@server home]# vim /etc/exports    编辑配置文件添加这一行
/nfs/tom        192.168.217.133/24(rw)
[root@server home]# exportfs -ra
[root@server home]# showmount -e
Export list for server:
/nfs/shared *
/nfs/tom    192.168.217.133/24
/nfs/upload 192.168.217.0/24

客户端:

我们先使用fox用户看看是否可以完全访问tom目录很明显是不可以的

[root@Node1 test]# ll
总用量 0
drwxr-xr-x. 2 root root 96 1月  13 23:52 shared
drwxr-xr-x. 2 2101 2101  6 1月  13 00:35 tom
drwxr-xrwx. 2 root root 90 1月  13 00:35 upload
[root@Node1 test]# su fox
[fox@Node1 test]$ cd tom/
[fox@Node1 tom]$ touch a
touch: 无法创建 'a': 权限不够

创建tom用户切换后尝试:

[root@Node1 tom]# useradd -u 2101 tom
[root@Node1 tom]# su tom
[tom@Node1 tom]$ touch b
[tom@Node1 tom]$ ll
总用量 0
-rw-rw-r--. 1 tom    tom    0 1月  13 00:35 b
-rw-r--r--. 1 root   root   0 1月  13 00:35 tom1
-rw-r--r--. 1 root   root   0 1月  13 00:35 tom2
[tom@Node1 tom]$ 

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

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

相关文章

Pytorch基础:数据读取与预处理——调用PyTorch官方数据集

数据读取与预处理——调用PyTorch官方数据集 1. 从网络端下载 FashionMNIST 数据集到本地2. 数据集可视化 1. 从网络端下载 FashionMNIST 数据集到本地 (base) PS C:\Users\孙明阳> conda activate yang (yang) PS C:\Users\孙明阳> python Python 3.11.5 | packaged by…

CSS 水浪按钮

<template><view class="content"><button class="button"><view class="liquid"></view><view class="btn-txt">水浪按钮</view></button></view></template><scrip…

Linux环境安装MySQL5.7教程

#卸载系统自带的Mariadb [roothdp265dnsnfs ~]# rpm -qa|grep mariadb mariadb-libs-5.5.44-2.el7.centos.x86_64 [roothdp265dnsnfs ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64#删除etc目录下的my.cnf文件[roothdp265dnsnfs ~]# rm /etc/my.cnf rm: cannot…

jupyter Debug 方案

1.试图 Jupyter Lab 进行 Debug conda install -c conda-forge jupyterlab # conda install xeus-python -c conda-forge # 会有问题 pip install -i https://mirrors.aliyun.com/pypi/simple xeus-python pip install nodejs npm # 安装 Node.js jupyter labextension inst…

数据结构与算法教程,数据结构C语言版教程!(第四部分、字符串,数据结构中的串存储结构)二

第四部分、字符串&#xff0c;数据结构中的串存储结构 串存储结构&#xff0c;也就是存储字符串的数据结构。 很明显&#xff0c;字符串之间的逻辑关系也是“一对一”&#xff0c;用线性表的思维不难想出&#xff0c;串存储结构也有顺序存储和链式存储。 提到字符串&#xff…

c语言-数据类型(上)

目录 一、数据类型 二、常量与变量 常量&#xff1a; 变量&#xff1a; 三、进制&#xff08;八&#xff0c;十&#xff0c;十六&#xff09; 十进制&#xff1a; 八进制&#xff1a; 十六进制&#xff1a; 四、基本类型 1.整型常量&#xff1a; 2.整型变量&#xff…

C++内存管理机制(侯捷)笔记4(完结)

C内存管理机制&#xff08;侯捷&#xff09; 本文是学习笔记&#xff0c;仅供个人学习使用。如有侵权&#xff0c;请联系删除。 参考链接 Youtube: 侯捷-C内存管理机制 Github课程视频、PPT和源代码: https://github.com/ZachL1/Bilibili-plus 介绍 下面是第四讲和第五讲…

XSS漏洞:xss-labs靶场通关

xss系列往期文章&#xff1a; 初识XSS漏洞-CSDN博客 利用XSS漏洞打cookie-CSDN博客 目录 第一关 第二关 第三关 第四关 第五关 第六关 第七关 第八关 第九关 第十关 第十一关 第十二关 第十三关 第十四关 第十五关 第十六关 第十七关 第十八关 第十九关 …

Unity | AudioSource 无声音

Unity | AudioSource 无声音 你是否也会遇到相同的问题&#xff1f;AudioSource没声音&#xff1f; 解决&#xff1a; 注意查看一下几处声音设置&#xff1a;

XS2180四通道,兼容 IEEE 802.3at/af以太网供电 PSE 控制器 V1.0

XS2180 是一个四通道、供电设备&#xff08; PSE &#xff09;电源控制 器&#xff0c;设计用于 IEEE 802.3at/af 兼容 PSE 。器件提供用 电设备&#xff08; PD &#xff09;检测、分级、限流以及负载断开检测。器 件支持自动工作和软件编程。器件还支持最新二事件分…

浅学Linux之旅 day2 Linux系统及系统安装介绍

答案在时间&#xff0c;耐心是生活的关键 ——24.1.15 一、Linux系统介绍 林纳斯.托瓦兹在1991年开发了Linux内核&#xff08;开源免费&#xff09; Linux系统组成 Linux内核 系统库 系统程序 Linux内核和Linux发行版 Linux内核 -> 开源免费&#xff0c;林纳斯开发 Linux发行…

宁夏银行关键系统基于OceanBase的创新实践

宁夏银行成立于 1998 年&#xff0c;是宁夏第一家“宁”字号地方商业银行&#xff0c;西部地区第一家以省级行政区命名的地方商业银行。2016 年&#xff0c;被中国人民银行评为宁夏地区系统性重要银行。目前&#xff0c;全行设分支机构 97 家&#xff0c;其中总行营业部 1 家&a…

centos7 arm服务器编译安装PaddlePaddle

前言 随着国产服务器发展&#xff0c;部署项目需要用在国产服务器上&#xff0c;官方教程里面很多没有讲解到&#xff0c;安装过程中出现了各种各样的问题&#xff0c;以下是对官方教程的补充&#xff0c;有什么问题&#xff0c;欢迎指正&#xff01; 一、环境准备 gcc: 8.2版…

BootStrap 实现轮播图

Bootstrap中文网 1、下载BootStrap 2、引入相关文件 在下载好的文件夹中找到下面的文件&#xff0c;复制到自己的项目中并引入 <link rel"stylesheet" href"bootstrap/css/bootstrap.min.css" /><script src"bootstrap/js/jquery.min.js…

【数据结构与算法】之数组系列-20240116

这里写目录标题 一、15. 三数之和二、16. 最接近的三数之和三、49. 字母异位词分组四、53. 最大子数组和五、189. 轮转数组六、179. 最大数 一、15. 三数之和 提示 中等 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k…

【教3妹学编程-算法题】3006. 找出数组中的美丽下标 I

3妹&#xff1a;呜呜&#xff0c;烦死了&#xff0c; 脸上长了一个痘 2哥 : 不要在意这些细节嘛&#xff0c;不用管它&#xff0c;过两天自然不就好了。 3妹&#xff1a;切&#xff0c;你不懂&#xff0c;影响这两天的心情哇。 2哥 : 我看你是不急着找工作了啊&#xff0c; 工作…

如何使用服务器?

文章目录 如何使用服务器&#xff1f;一、工具二、第一种方法三、第二种方法四、实例 个人经验 如何使用服务器&#xff1f; 本文详细介绍了如何利用服务器跑模型&#xff0c;具体流程如下&#xff1a; 一、工具 ToDeskPyCharm Professional移动硬盘JetBrains GatewayGit 二…

dp--62. 不同路径/medium 理解度A

62. 不同路径 1、题目2、题目分析3、复杂度最优解代码示例4、抽象与扩展 1、题目 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中…

fgets函数和fputs函数

目录 gets和putsfgets和fputs区别 橙色 gets和puts char *gets(char *str); // 从标准输入 stdin 读取一行&#xff0c;并把它存储在 str 所指向的字符串中。当读取到换行符时&#xff0c;或者到达文件末尾时&#xff0c;它会停止&#xff0c;具体视情况而定。 // 如果成功&a…

牛客网-css继承属性

3.当元素的一个继承属性没有指定值时&#xff0c;则取父元素的同属性的计算值&#xff0c;以下哪些不是 CSS 中的继承属性&#xff1f; A. color B.display C.border-style D.text-align 答案&#xff1a;BC 解析&#xff1a;不可继承&#xff1a;display&#xff0c;mar…