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. 新手小白-创建IDEA项目( IDEA 2021.2.1 版本)

    好久没打开IDEA这个软件,我发现连项目怎么具体创建都不知道了,哭唧唧~记录一下 创建项目: 1.先创建一个空项目,点击[File] -- > [New] --> [Project]; 2 ...

  2. 宏杉科技加入阿里云PolarDB开源数据库社区

    简介: 宏杉科技签署阿里巴巴开源CLA(Contribution License Agreement, 贡献许可协议), 正式与阿里云PolarDB 开源数据库社区牵手. 宏杉科技签署阿里巴巴开源CL ...

  3. 从“预见”到“遇见” | SAE 引领应用步入 Serverless 全托管新时代

    简介: 阿里云 Serverless 应用引擎(简称 SAE)初衷是让客户不改任何代码,不改变应用部署方式,就可以享受到微服务+K8s+Serverless 的完整体验,开箱即用免运维.作为业界首款面 ...

  4. 【阿里云 CDP 公开课】 第二讲:CDH/HDP 何去何从

    ​简介:Hadoop社区版CDH/HDP已经不再更新,也将终止服务.后续的平台路线图怎么规划?Cloudera CDP整合了CDH和HDP,有哪些性能提升和功能增强?如何平滑的进行迁移?本文结合CDH ...

  5. 网不好怎么办?TLS握手带宽直降80%,BabaSSL是怎么做到的?| 龙蜥技术

    ​简介:为了保障数据的安全性,客户端会先和服务器进行 TLS 握手,有什么办法可以减少 TLS 握手的带宽消耗呢? 编者按:BabaSSL 是一款开源的密码库产品,在 GitHub 和龙蜥社区开源,并 ...

  6. DataWorks 功能实践速览03期 — 生产开发环境隔离

    ​简介: DataWorks功能实践系列,帮助您解析业务实现过程中的痛点,提高业务功能使用效率! 往期回顾: DataWorks 功能实践速览01期--数据同步解决方案:为您介绍不同场景下可选的数据同 ...

  7. VGA色块显示#VGA显示数字

    VGA驱动色块显示 了解了VGA的显示原理和ADV7123控制后,再去实现色块显示就容易了. 像素坐标 跟显示色条不同,要在屏幕上不同的地方显示色块,需要用像素坐标来定位色块.其实,就是分别用行扫描的 ...

  8. 【web安全】隐藏nginx头文件信息

    摘要 Nginx作为开源web中间件,被广泛应用.因此源编译或者yum安装,都会带有其原有的nginx版本.很容易被针对,因此,通过修改nginx的源码.隐藏nginx版本和头部信息,保障nginx的 ...

  9. linux-centos7.6 硬盘挂载

    目录 一 .功能 二.VM中设置硬盘 2.1 系统关机状态下 2.2 添加硬盘 三.系统中挂载硬盘 3.1 查看硬盘信息 3.2 硬盘分区 3.3 格式化硬盘 3.4 临时挂载硬盘 3.4 开机自动挂 ...

  10. 支持4K60帧,高清高帧率远程控制软件

    设计师可以在家远程工作吗?动画制作人员可以远程在家工作吗?视频后期人员可以远程在家工作吗? 相比其他领域,设计.动画.影视视频后期等行业,往往需要高端机运行大型专业软件,一般人家里不具备这个办公条件. ...