NFS练习题

1.开放/nfs/share目录,提供给 任意用户 只读(/etc/exports ro) 查询

1.任意客户端
2.任意的用户

服务端

showmout

exportfs

systemctl start nfs

修改了nfs配置文件,需要重启什么吗?

修改了nfs配置文件,只需要让nfs重新读取该配置文件即可,你都不需要重新,因为你已重启,nfs工作端口又变了,导致所有客户端全部得重新连接

systemctl reload nfs

systemctl restart nfs

rpcinfo -p # 这个命令,查看nfs每次更新后的端口,是哪些在变化

rpcbind(记录nfs启动后的一个工作端口,nfs客户端首先会和rpcbind通信,获取该端口,然后再基于该端口,和nfs服务端通信)

关于nfs权限的小结

1. 重点在nfs服务端的 /etc/exportfs文件,里面定义的 rw,还是ro,以及root_squash,还是all_squash,以及不要给共享目录最高权限,一般不给other权限,都是对用户身份进行映射,
以及除了默认的nfsnobody用户,还可以指定映射为某个用户

2.还要看你客户端登录的用户是谁,是root,还是其他普通用户
 

#安装nfs与rpc
[root@nfs-31 ~]#yum install nfs-utils rpcbind -y
#按要求编辑nfs配置文件

# 关于nfs的权限
#第一道关卡 是 配置文件中的 rw,还是ro
# 第二道关卡,是该共享文件夹的权限,是否有rwx


[root@nfs-31 ~]#cat /etc/exports
/nfs/share *(ro,sync,all_squash)


1.任意客户端
2.任意的用户

#创建目录,启动程序
[root@nfs-31 ~]#mkdir -p /nfs/share

[root@nfs-31 ~]#systemctl start rpcbind.service
[root@nfs-31 ~]#systemctl start rpcbind.socket

[root@nfs-31 ~]#systemctl start nfs


[root@nfs-31 ~]#showmount -e 172.16.1.31
Export list for 172.16.1.31:
/nfs/share *


1.任意客户端
2.任意的用户

客户端


#安装nfs与rpc

[root@rsync-41 ~]#systemctl start rpcbind

#创建用于挂载的文件夹,进行挂载
[root@web-7 ~]#mkdir /nfs_share
[root@web-7 ~]#mount -t nfs 172.16.1.31:/nfs/share /nfs_share
[root@web-7 ~]#df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.6G 16G 9% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/nfs/share 17G 1.6G 16G 10% /nfs_share

只读效果展示


# 服务端
1.创建测试数据

[root@web-7 ~] touch /nfs/share/t1.log





2.先修改文件夹权限为对应的映射用户
chown -R nfsnobody.nfsnobody /nfs/share





#客户端

mkdir -p /test-nfs
mount -t nfs 172.16.1.31:/nfs/share /test-nfs

最终客户端可操作的权限如下

1.进入该目录,创建的文件就会被转为nfsnobody
2.但是现在该目录,nfs限制的是只读,所以无法创建


2.开放/nfs/upload目录,提供给172.16.1.0/24网段内的机器上传数据,并且要求限制上传数据映射为nfs-upload用户,uid和gid均为200

用到大量的用户权限管理
以及用户、用户组的 权限设置,创建,uid,gid的知识

服务端


[root@nfs-31 /nfs/share]#groupadd -g 200 nfs-upload
[root@nfs-31 /nfs/share]#useradd -u 200 -g 200 -M -s /sbin/nologin nfs-upload


[root@nfs-31 /nfs/share]#mkdir /nfs/upload
[root@nfs-31 /nfs/share]#chown -R nfs-upload.nfs-upload /nfs/upload

[root@nfs-31 /nfs/share]#ll -d /nfs/upload/
drwxr-xr-x 2 nfs-upload nfs-upload 6 Apr 22 17:34 /nfs/upload/



先准备好挂载的数据,最后在启动nfs


[root@nfs-31 /nfs/share]#vim /etc/exports
[root@nfs-31 /nfs/share]#cat /etc/exports
/nfs/upload 172.16.1.0/24(rw,sync,all_squash,anonuid=200,anongid=200)


[root@nfs-31 /nfs/upload]#exportfs -r



客户端

[root@web-7 ~]#mkdir /nfs_upload
[root@web-7 ~]#mount -t nfs 172.16.1.31:/nfs/upload /nfs_upload/


结果展示

#客户端操作
[root@web-7 ~]#touch /nfs_upload/我建一个文件

#服务端操作
[root@nfs-31 /nfs/share]#cd /nfs/upload/
[root@nfs-31 /nfs/upload]#ll
total 0
-rw-r--r-- 1 nfs-upload nfs-upload 0 Apr 22 17:45 我建一个文件
 

3.

开放/home/chaoge目录仅共享给172.16.1.41这台机器(服务端)

/home/chaoge 172.16.1.41(rw,all_squash,anonuid=1888,anongid=1888)

且只有chaoge01用户可以完全访问该目录(客户端)

限制客户端,只能通过chaoge01(1888)  用户,去读写该/home/chaoge目录,其他用户都没权限

梳理题意(题意修改)

1.chaoge01这个用户,属于只有服务端才有,然后配置文件中,添加身份映射参数,能实现,客户端所有操作,也都被映射为该chaoge01用户,因此获得权限

2.chaoge01(1888)用户,服务端,客户端都有,限制只有1888这个id,才能操作该目录,其他任何用户,都没权限(客户端,只有通过1888这个用户才有读写执行权限)
这个需求,必然得删除,服务端的身份映射参数

服务端
[root@nfs-31 /nfs/share]#cat /etc/exports
/nfs/share *(ro,sync,all_squash)
/nfs/upload 172.16.1.0/24(rw,sync,all_squash,anonuid=200,anongid=200)
/home/chaoge 172.16.1.41(rw)
[root@nfs-31 /nfs/share]#
[root@nfs-31 /nfs/share]#ll /home/chaoge/ -d
drwx------ 2 chaoge01 chaoge01 36 Apr 25 10:40 /home/chaoge/


客户端
普通用户
bob01 没有任何权限


root用户
root用户也无任何权限


只能通过1888这个id去操作该目录(因为你服务端没做身份映射)
创建的用户名和服务端最好一致
useradd chaoge01 -u 1888

分析题意

创建chaoge01用户,uid为 1888

useradd chaoge01 -u 1888 -M -s /sbin/nologin


mkdir -p /home/chaoge

/etc/exportfs
/home/chaoge 172.16.1.41()


/home/chaoge
只能被chaoge01用户有完全的访问(rwx)的权限
/home/chaoge

user group other
chaoge01 chaoge01 xxxxxxxxxxxxxxx
7 0 0


# 部署笔记
[root@nfs-31 /nfs/share]#mkdir -p /home/chaoge
[root@nfs-31 /nfs/share]#useradd chaoge01 -u 1888 -M -s /sbin/nologin
[root@nfs-31 /nfs/share]#id chaoge01
uid=1888(chaoge01) gid=1888(chaoge01) groups=1888(chaoge01)

该权限
[root@nfs-31 /nfs/share]#chown -R chaoge01.chaoge01 /home/chaoge/
[root@nfs-31 /nfs/share]#
[root@nfs-31 /nfs/share]#
[root@nfs-31 /nfs/share]#chmod 700 /home/chaoge/
[root@nfs-31 /nfs/share]#
[root@nfs-31 /nfs/share]#
[root@nfs-31 /nfs/share]#ll -d /home/chaoge/
drwx------ 2 chaoge01 chaoge01 6 Apr 25 10:28 /home/chaoge/

修改配置文件

[root@nfs-31 /nfs/share]#
[root@nfs-31 /nfs/share]## 服务端要做什么事
[root@nfs-31 /nfs/share]#
[root@nfs-31 /nfs/share]## 得限制,在该共享目录下的用户,全被映射为1888的用户
[root@nfs-31 /nfs/share]#
[root@nfs-31 /nfs/share]#cat /etc/exports
/nfs/share *(ro,sync,all_squash)
/nfs/upload 172.16.1.0/24(rw,sync,all_squash,anonuid=200,anongid=200)

/home/chaoge 172.16.1.41(rw,all_squash,anonuid=1888,anongid=1888)



# 客户端操作如下
[root@nfs-31 /nfs/share]## 回答,客户端,如何才能对/home/chaoge有读写执行权限
[root@nfs-31 /nfs/share]#
[root@nfs-31 /nfs/share]## 创建一样uid的用户 名字也叫chaoge01, 1888 chaoge01


1.root登录机器的操作,创建文件

2.普通用户登录机器,创建文件


服务端

[root@nfs-31 /nfs/upload]#vim /etc/exports
[root@nfs-31 /nfs/upload]#cat /etc/exports
/nfs/share *(ro,sync,all_squash)
/nfs/upload 172.16.1.0/24(rw,sync,all_squash,anonuid=200,anongid=200)
/home/chaoge 172.16.1.41(rw)

[root@nfs-31 /nfs/upload]#mkdir /home/chaoge
[root@nfs-31 /nfs/upload]#useradd -u 1001 chaoge01
[root@nfs-31 /nfs/upload]#chown -R chaoge01.chaoge01 /home/chaoge
[root@nfs-31 /nfs/upload]#chmod 700 /home/chaoge

[root@nfs-31 /nfs/upload]#exportfs -r

客户端

#安装nfs,rpcbind略

[root@rsync-41 ~]#systemctl start nfs
[root@rsync-41 ~]#systemctl start rpcbind

[root@rsync-41 ~]#useradd -u 1001 chaoge01
[root@rsync-41 ~]#cat /etc/passwd|tail -1
chaoge01:x:1001:1001::/home/chaoge01:/bin/bash

[root@rsync-41 ~]#mount -t nfs 172.16.1.31:/home/chaoge /nfs_chaoge/

验证效果

#客户端操作
[root@rsync-41 /]#ll -d /nfs_chaoge/
drwx------ 2 chaoge01 chaoge01 17 Apr 22 20:42 /nfs_chaoge/
[root@rsync-41 /]#cd /nfs_chaoge/
-bash: cd: /nfs_chaoge/: Permission denied


[root@rsync-41 /]#su - chaoge01
Last login: Fri Apr 22 20:41:57 CST 2022 on pts/0
[chaoge01@rsync-41 ~]$cd /nfs_chaoge/
[chaoge01@rsync-41 /nfs_chaoge]$touch 我是chaoge01


#服务端操作
[root@nfs-31 /nfs/upload]#ls /home/chaoge
我是chaoge01


验证

你不能去猜nfs服务端到底提供了什么样的文件共享权限,你得看到结果

4.添加30G硬盘,给nfs服务端/nfs-nginx-data目录使用,且仅提供给主机名为web-7的机器使用,并且要求限制上传数据映射为www用户,uid、gid均为11211;并且提供html、png资源给nginx用;确保nginx可正确访问该静态数据

服务端

服务端的要求
1.30G新硬盘,格式化文件系统
[root@nfs-31 ~]#ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb

直接对整个大硬盘不分区,直接格式化文件系统直接用
[root@nfs-31 ~]#mkfs.xfs /dev/sdb

本地挂载,使用该目录
mkdir -p /nfs-nginx-data
mount /dev/sdb /nfs-nginx-data



2.创建/nfs-nginx-data目录


3.服务端得创建该用户
useradd www -u 11211 -M -s /sbin/nologin


4. 前提 /etc/hosts中做好解析
[root@nfs-31 ~]#systemctl start nfs
[root@nfs-31 ~]#exportfs -r
[root@nfs-31 ~]#systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.


/etc/exports
/nfs-nginx-data web-7(rw,all_squash,anonuid=11211,anongid=1121)

5.在该目录下创建数据,且授权给www用户
[root@nfs-31 /nfs-nginx-data]#cat index.html
<meta charset=utf8>
hello nfs , 加油,奥力给

<img src='aoligei.gif'>
[root@nfs-31 /nfs-nginx-data]#ls
aoligei.gif index.html
[root@nfs-31 /nfs-nginx-data]#chown -R www.www /nfs-nginx-data/





客户端
yum install nginx -y
systemctl start nginx


直接挂载即可,你所有的操作,都会被映射为服务端的www用户
[root@rsync-41 ~]#mount -t nfs 172.16.1.31:/nfs-nginx-data /usr/share/nginx/html

[root@nfs-31 ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm
sdb 8:16 0 30G 0 disk
sr0 11:0 1 4.2G 0 rom
[root@nfs-31 ~]#mkfs.xfs /dev/sdb
meta-data=/dev/sdb isize=512 agcount=4, agsize=1966080 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=7864320, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=3840, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@nfs-31 ~]#mkdir /nfs-nginx-data
[root@nfs-31 ~]#mount /dev/sdb /nfs-nginx-data/

[root@nfs-31 ~]#vim /etc/exports
[root@nfs-31 ~]#cat /etc/exports
/nfs/share *(ro,sync,all_squash)
/nfs/upload 172.16.1.0/24(rw,sync,all_squash,anonuid=200,anongid=200)
/home/chaoge 172.16.1.41(rw)
/nfs-nginx-data 172.16.1.7(rw,sync,all_squash,anonuid=11211,anongid=11211)

[root@nfs-31 ~]#useradd -u 11211 -M -s /sbin/nologin www
[root@nfs-31 ~]#chown -R www.www /nfs-nginx-data/
[root@nfs-31 ~]#ll -d /nfs-nginx-data/
drwxr-xr-x 2 www www 6 Apr 22 21:33 /nfs-nginx-data/

客户端

[root@web-7 ~]#yum install nginx -y
[root@web-7 ~]#systemctl start nginx

[root@web-7 ~]#mount -t nfs 172.16.1.31:/nfs-nginx-data /usr/share/nginx/html/

[root@web-7 ~]#wget -O /usr/share/nginx/html/baidu.jpg https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png

[root@web-7 ~]#cd /usr/share/nginx/html/
[root@web-7 /usr/share/nginx/html]#ls
baidu.jpg
[root@web-7 /usr/share/nginx/html]#vim index.html
[root@web-7 /usr/share/nginx/html]#cat index.html
<meta charset=utf-8>
这是百度

<img src='./baidu.jpg'>

NFS练习的更多相关文章

  1. nfs 笔记 2

    http://woxihuanpes.blog.163.com/blog/static/12423219820097139145238/ http://blog.csdn.net/willvc123/ ...

  2. linux NFS 配置步骤

    转载 http://woxihuanpes.blog.163.com/blog/static/12423219820097139145238/ NFS server可以看作是一个FILE SERVER ...

  3. ubuntu 14.04LTS 环境下配置NFS服务

    简言之,NFS(Network FileSystem,网络文件系统)用于在不同机器,不同操作系统之间通过网络互相分享各自的文件.NFS设计之初就是为了在不同的系统间使用,所以它的通讯协议设计与主机及操 ...

  4. 【Oracle 集群】11G RAC 知识图文详细教程之RAC在LINUX上使用NFS安装前准备(六)

    RAC在LINUX上使用NFS安装前准备(六) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇 ...

  5. Ubuntu搭建NFS

    NFS全称是Network File System,网络文件系统.它可以通过网络实现文件共享.其结构图大概是这样的: 在机器E上开启NFS服务,机器ABCD都挂载NFS,这样可以实现机器ABCD共享文 ...

  6. nfs挂载配置

    nfs挂载步骤 服务器端 1.安装nfs-utils rpcbind $sudo yum –y install nfs-utils rpcbind 2.文件开放出去配置/etc/exports 例子: ...

  7. NFS服务器搭建——可用于共享文件或负载均衡文件共享服务器使用

    一.软件包安装 yum -y install nfs-utils  rpcbind 二.服务器端配置共享目录 1. 在服务器上创建NFS共享目录:mkdir /usr/local/test 2. 设置 ...

  8. NFS网络共享服务部署

    10.3 NFS服务端部署环境准备 10.3.1 NFS服务部署服务器准备 服务器系统 角色 IP Centos6.7 x86_64 NFS服务器端(NFS-server) 192.168.1.14 ...

  9. Linux NFS服务器的安装与配置

    一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操 ...

  10. NFS指定端口

    nfs服务端: 编辑/etc/nfsmount.conf,在末尾添加: RQUOTAD_PORT=30001LOCKD_TCPPORT=30002LOCKD_UDPPORT=30002MOUNTD_P ...

随机推荐

  1. 力扣647(java)-回文子串(中等)

    题目: 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目. 回文字符串 是正着读和倒过来读一样的字符串. 子字符串 是字符串中的由连续字符组成的一个序列. 具有不同开始位置或结束位置 ...

  2. CF1481D AB Graph 题解

    CF1481D AB Graph 题解 [思路] 首先有几个显而易见的东西. 如果存在两个点,他们之间的两条边字母相同,那么一定有解(在两个点之间跳.) 否则,这张图的邻接矩阵一定长成这样: * a ...

  3. 问题排查不再愁,Nacos 上线推送轨迹功能

    简介: 微服务体系下,注册中心的调用和配置变更是家常便饭,例如阿里每天就有百万级变更.亿级推送.可是,一旦出现调用或配置异常,问题排查就成了用户最大的困惑:是注册和配置中心导致的,还是上下游业务自身的 ...

  4. KubeVela + KEDA:为应用带来“与生俱来”的弹性伸缩能力

    简介: 在这篇博文中,我们将简要解释需要考虑的领域,KEDA 如何使应用自动伸缩变得简单,以及为什么阿里云企业分布式应用服务(EDAS)在 KEDA 上完全标准化. 联合作者 | Yan Xun,阿里 ...

  5. [Gin] gin-jwt 业务逻辑中使用实例化的 middleware 的方式

    依然需要按文档所示实例化一个 authMiddleware. 在路由组中使用的方式是 authMiddleware.MiddlewareFunc(). 通过追踪 MiddlewareFunc 可以知道 ...

  6. dotnet 通过 DockerfileContext 解决项目放在里层文件夹导致 VisualStudio 构建失败

    本文告诉大家,如何解决 csproj 项目文件放入到里层的文件夹,不放在 sln 所在文件夹的第一层子文件夹,导致 VisualStudio 2022 在构建 docker 映像提示找不到文件的问题 ...

  7. 6.prometheus监控--监控redis/rabbitmq/mongodb

    1.监控redis 1.1 redis_exporter安装方式 1.1.1 二进制源码安装方式 参考nginx二进制安装方法 redis_exporter下载地址:https://github.co ...

  8. go-zero goctl命令图解

  9. vueJs开发音乐播放器第二篇(点击歌单跳出详情页)

    继上一篇开发音乐播放器歌单列表页 (1.使用router定义跳转链接,2. 使用axios得到音乐第三方数据,并渲染到页面上,3.组件之间传值(props)) 1.接下来使用了vue-router路由 ...

  10. Vben-admin---ApiSelect Invalid prop: type check failed for prop "onUpdate:value". Expected Function, got Array

    在basicFrom组件里添加一个ApiSelect, <template #localSearch="{ model, field }"> <ApiSelect ...