NFS练习题

  • NFS练习题已关闭评论
  • 2 次浏览
  • A+
所属分类:linux技术
摘要

题目:主机列表:测试达到题目要求。开放/nfs/upload目录,提供给172.16.1.0/24网段内的机器上传数据,并且要求限制上传数据映射为nfs-upload用户


一、任务背景

题目:

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.110  172.16.1.110  client-110 

二、实验记录

2.1.开放/nfs/share目录,提供给任意用户只读查询

2.1.1.在nfs-31机器上安装和启动nfs-utilsrpcbind

2.1.1.1.安装nfs-utilsrpcbind

[root@nfs-31 ~]# yum install -y nfs-utils rpcbind 已加载插件:fastestmirror Determining fastest mirrors base                                                                                                         | 3.6 kB  00:00:00      epel                                                                                                         | 5.4 kB  00:00:00      extras                                                                                                       | 2.9 kB  00:00:00      updates                                                                                                      | 2.9 kB  00:00:00      软件包 1:nfs-utils-1.3.0-0.68.el7.2.aarch64 已安装并且是最新版本 软件包 rpcbind-0.2.0-49.el7.aarch64 已安装并且是最新版本 无须任何处理 

2.1.1.2.启动rpcbind服务

[root@nfs-31 ~]# systemctl start rpcbind [root@nfs-31 ~]# 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      

2.1.1.3修该nfs配置文件/etc/exports

[root@nfs-31 share]# vim /etc/exports [root@nfs-31 share]# cat /etc/exports /nfs/share *(ro) 

2.1.1.4 建立目录/nfs/share,并在此目录中创建一个文件用于测试。

[root@nfs-31 ~]# mkdir -p /nfs/share [root@nfs-31 ~]# ll -d /nfs/share/ drwxr-xr-x 2 root root 6 11月 26 09:40 /nfs/share/ 
[root@nfs-31 ~]#  cd /nfs/share/ [root@nfs-31 share]# echo '这是一个测试文件,你只能读' > testro.txt [root@nfs-31 share]# ll 总用量 4 -rw-r--r-- 1 root root 40 11月 26 09:42 testro.txt 

2.1.1.5 启动nfs服务

[root@nfs-31 share]# systemctl start nfs [root@nfs-31 share]# 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 #将服务设置为开机自启 [root@nfs-31 ~]# systemctl enable nfs [root@nfs-31 ~]# systemctl is-enabled nfs enabled [root@nfs-31 ~]# systemctl is-enabled rpcbind enabled  

2.1.2在client-110进行挂载测试

2.1.2.1 安装nfs-utils

[root@client-110 ~]# yum install -y nfs-utils 已加载插件:fastestmirror Loading mirror speeds from cached hostfile ... ... 完毕! 

2.1.2.1 查询nfs服务器上开放的目录

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

2.1.2.2 新建一个目录作为挂载点进行挂载

[root@client-110 ~]# mkdir -p  /mnt/nfs/share [root@client-110 ~]# mount -t nfs  anaconda-ks.cfg  .bash_logout     .bashrc          network_init.sh  .viminfo          .bash_history    .bash_profile    .cshrc           .tcshrc           [root@client-110 ~]# mount -t nfs 172.16.1.31:/nfs/share /mnt/nfs/share/ [root@client-110 ~]# df -h | grep nfs 172.16.1.31:/nfs/share    17G  1.8G   16G   11% /mnt/nfs/share 

2.1.2.3 测试挂载是否是只读

[root@client-110 ~]# cd /mnt/nfs/share/ [root@client-110 share]# ll 总用量 4 -rw-r--r-- 1 root root 40 11月 26 09:42 testro.txt [root@client-110 share]# cat testro.txt  这是一个测试文件,你只能读 [root@client-110 share]# echo '我偏要写入'>> testro.txt  bash: testro.txt: 只读文件系统 [root@client-110 share]# touch 我偏要rw.txt touch: 无法创建"我偏要rw.txt": 只读文件系统 [root@client-110 share]# mkdir test mkdir: 无法创建目录"test": 只读文件系统 [root@client-110 share]#  

测试达到题目要求。

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

2.2.1.在nfs-31机器上配置和重载nfs

2.2.1.2 .新建nfs-upload用户,uidgid均为200

[root@nfs-31 share]# useradd nfs-upload -M -u 200 -g 200 -s /sbin/nologin useradd:“200”组不存在 [root@nfs-31 share]# useradd nfs-upload -M -u 200  -s /sbin/nologin [root@nfs-31 share]# grep  200 /etc/passwd  nfs-upload:x:200:1001::/home/nfs-upload:/sbin/nologin [root@nfs-31 share]# groupmod -g 200 nfs-upload [root@nfs-31 share]# grep  200 /etc/passwd  nfs-upload:x:200:200::/home/nfs-upload:/sbin/nologin 

2.2.1.3 .修该nfs配置文件/etc/exports

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

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

2.2.1.4.新建目录/nfs/upload,修改其属性。

[root@nfs-31 share]# mkdir -p /nfs/upload [root@nfs-31 share]# ll -d  /nfs/upload/ drwxr-xr-x 2 root root 6 11月 26 13:06 /nfs/upload/ [root@nfs-31 ~]# chown -R nfs-upload:nfs-upload /nfs/upload  [root@nfs-31 ~]# ll -d /nfs/upload/ drwxr-xr-x 2 nfs-upload nfs-upload 6 11月 26 13:06 /nfs/upload/ 

2.2.1.5.重载nfs服务,查看nfs开放情况

[root@nfs-31 share]# systemctl reload nfs [root@nfs-31 share]# showmount -e 172.16.1.31 Export list for 172.16.1.31: /nfs/share  * /nfs/upload 172.16.1.0/24 

2.2.2.在client-110进行挂载和测试

2.2.2.1.查询nfs服务器上开放的目录

[root@client-110 ~]# showmount -e 172.16.1.31

Export list for 172.16.1.31: /nfs/share  * /nfs/upload 172.16.1.0/24 

2.2.2.2.新建一个目录作为挂载点进行挂载

[root@client-110 ~]# mkdir -p /mnt/nfs/upload [root@client-110 ~]# ll -d /mnt/nfs/upload/ drwxr-xr-x 2 root root 6 11月 26 15:03 /mnt/nfs/upload/ [root@client-110 ~]# mount -t nfs 172.16.1.31:/nfs/upload /mnt/nfs/upload [root@client-110 ~]# df -h | grep nfs 172.16.1.31:/nfs/share    17G  1.8G   16G   11% /mnt/nfs/share 172.16.1.31:/nfs/upload   17G  1.8G   16G   11% /mnt/nfs/upload 

2.2.2.3.进入挂载点进行测试

[root@client-110 upload]# echo '我上传文件试试'>> upload.txt [root@client-110 upload]# ll 总用量 4 -rw-r--r-- 1 200 200 22 11月 26 15:26 upload.txt 

2.2.2.3.在nfs-31上进入开放目录查看上传的文件

[root@nfs-31 ~]# ll /nfs/ share/  upload/  [root@nfs-31 ~]# ll /nfs/upload/ 总用量 4 -rw-r--r-- 1 nfs-upload nfs-upload 22 11月 26 15:26 upload.txt [root@nfs-31 ~]# cat /nfs/upload/upload.txt  我上传文件试试 

测试达到题目要求。

2.3.开放/home/chaoge目录仅共享给172.16.1.41这台机器,且只有chaoge01用户可以完全访问该目录

2.3.1 .在nfs-31机器上配置和重载nfs

2.3.1.1.新建chaoge01用户,指定用户主目录为/home/chaoge
[root@nfs-31 ~]# useradd -d /home/chaoge chaoge01  [root@nfs-31 ~]# grep chaoge01 /etc/passwd chaoge01:x:1001:1001::/home/chaoge:/bin/bash [root@nfs-31 ~]# ll -d /home/chaoge drwx------ 2 chaoge01 chaoge01 62 11月 26 16:05 /home/chaoge 

可以看到,chaoge01uidgid都为1001,且只有chaoge01用户可以完全访问该目录

2.3.1.2.修该nfs配置文件/etc/exports
[root@nfs-31 ~]# vim /etc/exports [root@nfs-31 ~]# 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) 
2.3.1.3.重载nfs服务和查看开放情况
[root@nfs-31 ~]# systemctl reload nfs [root@nfs-31 ~]# showmount -e 127.0.0.1 Export list for 127.0.0.1: /nfs/share   * /nfs/upload  172.16.1.0/24 /home/chaoge 172.16.1.41 

2.3.2.在rsync-41机器上进行挂载和测试

2.3.2.1.安装nfs-utils,并查看nfs-31上的开放情况
[root@rsync-41 ~]# yum install -y nfs-utils 
[root@rsync-41 ~]# showmount -e 172.16.1.31 Export list for 172.16.1.31: /nfs/share   * /nfs/upload  172.16.1.0/24 /home/chaoge 172.16.1.41 
2.3.2.2.新建挂载点目录/mnt/nfs/chaoge01,进行挂载测试
[root@rsync-41 ~]# mkdir -p /mnt/nfs/chaoge01 [root@rsync-41 ~]# mount -t nfs 172.16.1.31:/home/chaoge /mnt/nfs/chaoge01 [root@rsync-41 ~]# df -h | grep nfs 172.16.1.31:/home/chaoge   17G  1.8G   16G   11% /mnt/nfs/chaoge01 [root@rsync-41 ~]# echo '我是超哥'> /mnt/nfs/chaoge01/chaoge.txt [root@rsync-41 ~]# ll /mnt/nfs/chaoge01/ 总用量 4 -rw-r--r-- 1 1001 1001 13 11月 26 16:51 chaoge.txt 

测试达到题目要求。

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

2.4.1.在nfs-31添加硬盘并按要求进行配置

2.4.1.1.添加硬盘为/dev/sdb,并进行挂载

查看磁盘/dev/sdb

[root@nfs-31 ~]# lsblk | grep sdb sdb               8:16   0   10G  0 disk  

对磁盘进行分区格式化

[root@nfs-31 ~]# 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. 正在同步磁盘。 [root@nfs-31 ~]# lsblk /dev/sdb NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb      8:16   0  10G  0 disk  └─sdb1   8:17   0  10G  0 part  
[root@nfs-31 ~]# 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,并挂载

[root@nfs-31 ~]# mkdir /nfs-nginx-data [root@nfs-31 ~]# mount  /dev/sdb1 /nfs-nginx-data/ [root@nfs-31 ~]# mount -l |grep sdb1 /dev/sdb1 on /nfs-nginx-data type ext4 (rw,relatime) [root@nfs-31 ~]#  

2.4.1.2.新建www用户,uidgid均为11211

[root@nfs-31 ~]# useradd www -u 11211 -U -s /sbin/nologin [root@nfs-31 ~]# grep www /etc/passwd www:x:11211:11211::/home/www:/sbin/nologin [root@nfs-31 ~]# grep www /etc/group www:x:11211: [root@nfs-31 ~]#  

2.4.1.3 配置/etc/exports,并重载nfs

[root@nfs-31 ~]# vim /etc/exports [root@nfs-31 ~]# 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) [root@nfs-31 ~]# systemctl reload nfs [root@nfs-31 ~]# showmount -e 127.0.0.1 Export 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.41 

2.4.1.4 进入/nfs-nginx-data目录,准备好index文件等资源。

[root@nfs-31 nfs-nginx-data]# wget -O 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) [image/png] 正在保存至: “stop.png”  100%[============================================================>] 84,479      --.-K/s 用时 0.007s    2024-11-26 22:41:47 (11.3 MB/s) - 已保存 “stop.png” [84479/84479])  [root@nfs-31 nfs-nginx-data]# ll 总用量 100 drwx------ 2 root root 16384 11月 26 22:05 lost+found -rw-r--r-- 1 root root 84479 11月 25 14:42 stop.png [root@nfs-31 nfs-nginx-data]# vim index.html [root@nfs-31 nfs-nginx-data]# cat index.html  <h1>这是一个网页</h1> <img src="stop.png" alt="NFS练习题" alt="这是一个示例图片"> [root@nfs-31 nfs-nginx-data]#  

2.4.1.5 修改/nfs-nginx-data目录属性

[root@nfs-31 nfs-nginx-data]# chown -R www.www /nfs-nginx-data/ 

2.4.2.在web-7机器上部署nginx,并挂载nfs上的数据。

2.4.2.1.新建www用户

[root@web-7 ~]# useradd -u 11211 -U -s /sbin/nologin -M www [root@web-7 ~]# grep www /etc/passwd www:x:11211:11211::/home/www:/sbin/nologin 

2.4.2.2.部署nginx服务,修改nginx用户。

[root@web-7 ~]#  yum install -y nginx  [root@web-7 ~]# vim /etc/nginx/nginx.conf [root@web-7 ~]# grep -n '^user' /etc/nginx/nginx.conf 5:user www; 

2.4.2.3.启动nginx服务,测试网页。

[root@web-7 ~]# systemctl start nginx [root@web-7 ~]# 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[1]: Starting The nginx HTTP and reverse proxy server... 11月 27 09:46:20 web-7 nginx[18443]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok 11月 27 09:46:20 web-7 nginx[18443]: nginx: configuration file /etc/nginx/nginx.conf test is s...sful 11月 27 09:46:20 web-7 systemd[1]: Started The nginx HTTP and reverse proxy server. Hint: Some lines were ellipsized, use -l to show in full. 
[root@web-7 ~]# 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   [root@web-7 ~]# ps -ef | grep nginx root     18448     1  0 09:46 ?        00:00:00 nginx: master process /usr/sbin/nginx www      18449 18448  0 09:46 ?        00:00:00 nginx: worker process www      18450 18448  0 09:46 ?        00:00:00 nginx: worker process root     18756 18079  0 10:01 pts/0    00:00:00 grep --color=auto nginx  

测试网页能打开
NFS练习题

2.4.2.4.安装nfs-utils,挂载nfs

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

查看nfs-31上开放情况

[root@web-7 ~]# 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 

挂载

[root@web-7 ~]# mount -t nfs 172.16.1.31:/nfs-nginx-data /usr/share/nginx/html [root@web-7 ~]# df -h | grep nfs 172.16.1.31:/nfs-nginx-data  9.8G   37M  9.2G    1% /usr/share/nginx/html [root@web-7 ~]# 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 stop.png [root@web-7 ~]#  

2.4.2.5.刷新网页,已能访问nfs上的资源

NFS练习题
修改网页再次刷新

[root@web-7 ~]# echo '<p>-----我是底部---</p>' >> /usr/share/nginx/html/index.html  

NFS练习题
至此已完成题目。