NFS练习题
一、任务背景题目:
1.开放/nfs/share目录,提供给任意用户只读查询
2.开放/nfs/upload目录,提供给172.16.1.0/24网段内的机器上传数据,并且要求限制上传数据映射为nfs-upload用户,uid和gid均为200
3.开放/home/chaoge目录仅共享给172.16.1.41这台机器,且只有chaoge01用户可以完全访问该目录
4.添加10G硬盘,给nfs服务端/nfs-nginx-data目录使用,且仅提供给主机名为web-7的机器使用,并且要求限制上传数据映射为www用户,uid、gid均为11211;并且提供html、png资源给nginx用;确保nginx可正确访问该静态数据。主机列表:
# 外网地址 内网地址 主机名
192.168.122.7 172.16.1.7 web-7
192.168.122.31 172.16.1.31 nfs-31
192.168.122.41 172.16.1.41 rsync-41
192.168.122.110172.16.1.110client-110二、实验记录
1.开放/nfs/share目录,提供给任意用户只读查询
1.1.在nfs-31机器上安装和启动nfs-utils和rpcbind
1.1.1.安装nfs-utils和rpcbind
# yum install -y nfs-utils rpcbind
已加载插件:fastestmirror
Determining fastest mirrors
base | 3.6 kB00:00:00
epel | 5.4 kB00:00:00
extras | 2.9 kB00:00:00
updates | 2.9 kB00:00:00
软件包 1:nfs-utils-1.3.0-0.68.el7.2.aarch64 已安装并且是最新版本
软件包 rpcbind-0.2.0-49.el7.aarch64 已安装并且是最新版本
无须任何处理1.1.2.启动rpcbind服务
# systemctl start rpcbind
# netstat -tunlp |grep rpc
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2806/rpcbind
tcp6 0 0 :::111 :::* LISTEN 2806/rpcbind
udp 0 0 0.0.0.0:111 0.0.0.0:* 2806/rpcbind
udp 0 0 0.0.0.0:861 0.0.0.0:* 2806/rpcbind
udp6 0 0 :::111 :::* 2806/rpcbind
udp6 0 0 :::861 :::* 2806/rpcbind 1.1.3修该nfs配置文件/etc/exports
# vim /etc/exports
# cat /etc/exports
/nfs/share *(ro)1.1.4 建立目录/nfs/share,并在此目录中创建一个文件用于测试。
# mkdir -p /nfs/share
# ll -d /nfs/share/
drwxr-xr-x 2 root root 6 11月 26 09:40 /nfs/share/#cd /nfs/share/
# echo '这是一个测试文件,你只能读' > testro.txt
# ll
总用量 4
-rw-r--r-- 1 root root 40 11月 26 09:42 testro.txt1.1.5 启动nfs服务
# systemctl start nfs
# systemctl status nfs
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
Drop-In: /run/systemd/generator/nfs-server.service.d
└─order-with-mounts.conf
Active: active (exited) since 二 2024-11-26 10:09:36 CST; 3s ago
Process: 2681 ExecStopPost=/usr/sbin/exportfs -f (code=exited, status=0/SUCCESS)
Process: 2678 ExecStopPost=/usr/sbin/exportfs -au (code=exited, status=0/SUCCESS)
Process: 2677 ExecStop=/usr/sbin/rpc.nfsd 0 (code=exited, status=0/SUCCESS)
Process: 7932 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
Process: 7919 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
Process: 7917 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
Main PID: 7919 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/nfs-server.service
#将服务设置为开机自启
# systemctl enable nfs
# systemctl is-enabled nfs
enabled
# systemctl is-enabled rpcbind
enabled1.2在client-110进行挂载测试
1.2.1 安装nfs-utils
# yum install -y nfs-utils
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
...
...
完毕!1.2.2 查询nfs服务器上开放的目录
# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/nfs/share *1.2.3 新建一个目录作为挂载点进行挂载
# mkdir -p/mnt/nfs/share
# mount -t nfs
anaconda-ks.cfg.bash_logout .bashrc network_init.sh.viminfo
.bash_history .bash_profile .cshrc .tcshrc
# mount -t nfs 172.16.1.31:/nfs/share /mnt/nfs/share/
# df -h | grep nfs
172.16.1.31:/nfs/share 17G1.8G 16G 11% /mnt/nfs/share1.2.4 测试挂载是否是只读
# cd /mnt/nfs/share/
# ll
总用量 4
-rw-r--r-- 1 root root 40 11月 26 09:42 testro.txt
# cat testro.txt
这是一个测试文件,你只能读
# echo '我偏要写入'>> testro.txt
bash: testro.txt: 只读文件系统
# touch 我偏要rw.txt
touch: 无法创建"我偏要rw.txt": 只读文件系统
# mkdir test
mkdir: 无法创建目录"test": 只读文件系统
# 测试达到题目要求。
2.开放/nfs/upload目录,提供给172.16.1.0/24网段内的机器上传数据,并且要求限制上传数据映射为nfs-upload用户,uid和gid均为200
2.1.在nfs-31机器上配置和重载nfs
2.1.1 .新建nfs-upload用户,uid和gid均为200
# useradd nfs-upload -M -u 200 -g 200 -s /sbin/nologin
useradd:“200”组不存在
# useradd nfs-upload -M -u 200-s /sbin/nologin
# grep200 /etc/passwd
nfs-upload:x:200:1001::/home/nfs-upload:/sbin/nologin
# groupmod -g 200 nfs-upload
# grep200 /etc/passwd
nfs-upload:x:200:200::/home/nfs-upload:/sbin/nologin2.1.2 .修该nfs配置文件/etc/exports
开放/nfs/upload目录,提供给172.16.1.0/24网段内的机器上传数据,并且要求限制上传数据映射为nfs-upload用户
# vim /etc/exports
# cat /etc/exports
/nfs/share *(ro)/nfs/upload 172.16.1.0/24(rw,sync,all_squash,anonuid=200,anongid=200)2.1.3.新建目录/nfs/upload,修改其属性。
# mkdir -p /nfs/upload
# ll -d/nfs/upload/
drwxr-xr-x 2 root root 6 11月 26 13:06 /nfs/upload/
# chown -R nfs-upload:nfs-upload /nfs/upload
# ll -d /nfs/upload/
drwxr-xr-x 2 nfs-upload nfs-upload 6 11月 26 13:06 /nfs/upload/2.1.4.重载nfs服务,查看nfs开放情况
# systemctl reload nfs
# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/nfs/share*
/nfs/upload 172.16.1.0/242.2.在client-110进行挂载和测试
2.2.1.查询nfs服务器上开放的目录
# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/nfs/share*
/nfs/upload 172.16.1.0/242.2.2.新建一个目录作为挂载点进行挂载
# mkdir -p /mnt/nfs/upload
# ll -d /mnt/nfs/upload/
drwxr-xr-x 2 root root 6 11月 26 15:03 /mnt/nfs/upload/
# mount -t nfs 172.16.1.31:/nfs/upload /mnt/nfs/upload
# df -h | grep nfs
172.16.1.31:/nfs/share 17G1.8G 16G 11% /mnt/nfs/share
172.16.1.31:/nfs/upload 17G1.8G 16G 11% /mnt/nfs/upload2.2.3.进入挂载点进行测试
# echo '我上传文件试试'>> upload.txt
# ll
总用量 4
-rw-r--r-- 1 200 200 22 11月 26 15:26 upload.txt2.2.4.在nfs-31上进入开放目录查看上传的文件
# ll /nfs/
share/upload/
# ll /nfs/upload/
总用量 4
-rw-r--r-- 1 nfs-upload nfs-upload 22 11月 26 15:26 upload.txt
# cat /nfs/upload/upload.txt
我上传文件试试测试达到题目要求。
3.开放/home/chaoge目录仅共享给172.16.1.41这台机器,且只有chaoge01用户可以完全访问该目录
3.1 .在nfs-31机器上配置和重载nfs
3.1.1.新建chaoge01用户,指定用户主目录为/home/chaoge
# useradd -d /home/chaoge chaoge01
# grep chaoge01 /etc/passwd
chaoge01:x:1001:1001::/home/chaoge:/bin/bash
# ll -d /home/chaoge
drwx------ 2 chaoge01 chaoge01 62 11月 26 16:05 /home/chaoge可以看到,chaoge01的uid和gid都为1001,且只有chaoge01用户可以完全访问该目录
3.1.2.修该nfs配置文件/etc/exports
# vim /etc/exports
# cat /etc/exports
/nfs/share *(ro)
/nfs/upload 172.16.1.0/24(rw,sync,all_squash,anonuid=200,anongid=200)
/home/chaoge 172.16.1.41(rw,sync,all_squash,anonuid=1001,anongid=1001)3.1.3.重载nfs服务和查看开放情况
# systemctl reload nfs
# showmount -e 127.0.0.1
Export list for 127.0.0.1:
/nfs/share *
/nfs/upload172.16.1.0/24
/home/chaoge 172.16.1.413.2.在rsync-41机器上进行挂载和测试
3.2.1.安装nfs-utils,并查看nfs-31上的开放情况
# yum install -y nfs-utils# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/nfs/share *
/nfs/upload172.16.1.0/24
/home/chaoge 172.16.1.413.2.2.新建挂载点目录/mnt/nfs/chaoge01,进行挂载测试
# mkdir -p /mnt/nfs/chaoge01
# mount -t nfs 172.16.1.31:/home/chaoge /mnt/nfs/chaoge01
# df -h | grep nfs
172.16.1.31:/home/chaoge 17G1.8G 16G 11% /mnt/nfs/chaoge01
# echo '我是超哥'> /mnt/nfs/chaoge01/chaoge.txt
# ll /mnt/nfs/chaoge01/
总用量 4
-rw-r--r-- 1 1001 1001 13 11月 26 16:51 chaoge.txt测试达到题目要求。
4.添加10G硬盘,给nfs服务端/nfs-nginx-data目录使用,且仅提供给主机名为web-7的机器使用,并且要求限制上传数据映射为www用户,uid、gid均为11211;并且提供html、png资源给nginx用;确保nginx可正确访问该静态数据。
4.1.在nfs-31添加硬盘并按要求进行配置
4.1.1.添加硬盘为/dev/sdb,并进行挂载
查看磁盘/dev/sdb
# lsblk | grep sdb
sdb 8:16 0 10G0 disk 对磁盘进行分区格式化
# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x2f483f1b 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):
将使用默认值 20971519
分区 1 已设置为 Linux 类型,大小设为 10 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
# lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 010G0 disk
└─sdb1 8:17 010G0 part # mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: 完成
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621184 blocks
131059 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2151677952
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 新建挂载点/nfs-nginx-data,并挂载
# mkdir /nfs-nginx-data
# mount/dev/sdb1 /nfs-nginx-data/
# mount -l |grep sdb1
/dev/sdb1 on /nfs-nginx-data type ext4 (rw,relatime)
# 4.1.2.新建www用户,uid、gid均为11211
# useradd www -u 11211 -U -s /sbin/nologin
# grep www /etc/passwd
www:x:11211:11211::/home/www:/sbin/nologin
# grep www /etc/group
www:x:11211:
# 4.1.3配置/etc/exports,并重载nfs
# vim /etc/exports
# cat /etc/exports
/nfs/share *(ro)
/nfs/upload 172.16.1.0/24(rw,sync,all_squash,anonuid=200,anongid=200)
/home/chaoge 172.16.1.41(rw,sync,all_squash,anonuid=1001,anongid=1001)/nfs-nginx-data 172.16.1.7(rw,sync,all_squash,anonuid=11211,anongid=11211)# systemctl reload nfs# showmount -e 127.0.0.1Export list for 127.0.0.1:/nfs/share */nfs/upload 172.16.1.0/24/nfs-nginx-data 172.16.1.7/home/chaoge 172.16.1.414.1.4进入/nfs-nginx-data目录,准备好index文件等资源。
# wget -O https://www.cnblogs.com/stop.png https://img3.chinadaily.com.cn/images/202411/25/67441c40a310b5910b7eef9e.png
--2024-11-26 22:41:47--https://img3.chinadaily.com.cn/images/202411/25/67441c40a310b5910b7eef9e.png
正在解析主机 img3.chinadaily.com.cn (img3.chinadaily.com.cn)... 110.40.23.137, 118.112.19.103, 2407:3740:0:3::68, ...
正在连接 img3.chinadaily.com.cn (img3.chinadaily.com.cn)|110.40.23.137|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:84479 (82K)
正在保存至: “https://www.cnblogs.com/stop.png”
100%[============================================================>] 84,479 --.-K/s 用时 0.007s
2024-11-26 22:41:47 (11.3 MB/s) - 已保存 “https://www.cnblogs.com/stop.png” )
# ll
总用量 100
drwx------ 2 root root 16384 11月 26 22:05 lost+found
-rw-r--r-- 1 root root 84479 11月 25 14:42 https://www.cnblogs.com/stop.png
# vim index.html
# cat index.html
<h1>这是一个网页</h1>
<img src="https://www.cnblogs.com/stop.png" alt="这是一个示例图片">
# 4.1.5修改/nfs-nginx-data目录属性
# chown -R www.www /nfs-nginx-data/4.2.在web-7机器上部署nginx,并挂载nfs上的数据。
4.2.1.新建www用户
# useradd -u 11211 -U -s /sbin/nologin -M www
# grep www /etc/passwd
www:x:11211:11211::/home/www:/sbin/nologin4.2.2.部署nginx服务,修改nginx用户。
#yum install -y nginx
# vim /etc/nginx/nginx.conf
# grep -n '^user' /etc/nginx/nginx.conf
5:user www;4.2.3.启动nginx服务,测试网页。
# systemctl start nginx
# systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since 三 2024-11-27 09:46:20 CST; 13s ago
Process: 18446 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 18443 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 18441 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 18448 (nginx)
CGroup: /system.slice/nginx.service
├─18448 nginx: master process /usr/sbin/nginx
├─18449 nginx: worker process
└─18450 nginx: worker process
11月 27 09:46:19 web-7 systemd: Starting The nginx HTTP and reverse proxy server...
11月 27 09:46:20 web-7 nginx: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
11月 27 09:46:20 web-7 nginx: nginx: configuration file /etc/nginx/nginx.conf test is s...sful
11月 27 09:46:20 web-7 systemd: Started The nginx HTTP and reverse proxy server.
Hint: Some lines were ellipsized, use -l to show in full.# netstat -tunlp | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 18448/nginx: master
tcp6 0 0 :::80 :::* LISTEN 18448/nginx: master
# ps -ef | grep nginx
root 18448 10 09:46 ? 00:00:00 nginx: master process /usr/sbin/nginx
www 18449 184480 09:46 ? 00:00:00 nginx: worker process
www 18450 184480 09:46 ? 00:00:00 nginx: worker process
root 18756 180790 10:01 pts/0 00:00:00 grep --color=auto nginx测试网页能打开
4.2.4.安装nfs-utils,挂载nfs
#yum install nfs-utils -y查看nfs-31上开放情况
# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/nfs/share *
/nfs/upload 172.16.1.0/24
/nfs-nginx-data 172.16.1.7
/home/chaoge 172.16.1.41挂载
# mount -t nfs 172.16.1.31:/nfs-nginx-data /usr/share/nginx/html
# df -h | grep nfs
172.16.1.31:/nfs-nginx-data9.8G 37M9.2G 1% /usr/share/nginx/html
# ll /usr/share/nginx/html/
总用量 104
-rw-r--r-- 1 www www 80 11月 26 22:49 index.html
drwx------ 2 www www 16384 11月 26 22:05 lost+found
-rw-r--r-- 1 www www 84479 11月 25 14:42 https://www.cnblogs.com/stop.png
# 4.2.5.刷新网页,已能访问nfs上的资源
修改网页再次刷新
# echo '<p>-----我是底部---</p>' >> /usr/share/nginx/html/index.html
至此已完成题目。
来源:https://www.cnblogs.com/funlyp/p/18567483
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页:
[1]