RHCE 练习三:架设一台 NFS 服务器

一、题目要求

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

2、开放 /nfs/upload 目录,为 192.168.xxx.0/24 网段主机可以上传目录,并将所有用户及所属的组映射为 nfs-upload,其 UID 和 GID 均为 210

3.将 /home/tom 目录仅共享给 192.168.xxx.xxx 这台主机,并只有用户 tom 对该目录有读写权限

二、实验

前情提要:

① 需要准备两台版本一致的 linux 主机且网络可互通,这里我的服务端为 192.168.96.142,客户端为 192.168.96.132

② 关闭服务端防火墙以及 selinux

bash 复制代码
[root@server ~]# systemctl stop firewalld

[root@server ~]# setenforce 0

③ 磁盘挂载操作

bash 复制代码
[root@server ~]# mount /dev/sr0 /mnt
mount: /mnt: WARNING: source write-protected, mounted read-only.

④ 配置 yum 源文件

bash 复制代码
[root@server ~]# vim /etc/yum.repos.d/base.repo

[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
gpgcheck=0

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

① 安装 nfs-utils 共享文件系统并启动程序

bash 复制代码
[root@server ~]# dnf install nfs-utils -y

[root@server ~]# systemctl start nfs-server.service 

② 编辑 nfs 主配置文件

bash 复制代码
[root@server ~]# vim /etc/exports

# 共享目录(根目录)   允许访问的主机*(权限,参数)
/nfs/shared  *(ro)    

③ 根据配置文件创建资源文件并查看文件权限,确保所有用户可读 /nfs/shared 路径下文件即可

bash 复制代码
[root@server ~]# mkdir -pv /nfs/shared
mkdir: 已创建目录 '/nfs'
mkdir: 已创建目录 '/nfs/shared'

[root@server ~]# touch /nfs/shared/test{1..10}

[root@server ~]# ll -d /nfs/shared/
drwxr-xr-x. 2 root root 137  5月 19 20:01 /nfs/shared/

④ 由于上面我们修改了 nfs 的配置文件,想要文件生效我们要重启 nfs-server 服务,但在这里我们不能直接用 systemctl restart nfs-server 来重启服务,这样我们每重启一次服务就会重新进行端口注册,推荐用 exportfs -ra 来实现。刷新后未出现报错说明我们的配置没有问题!

bash 复制代码
[root@server ~]# exportfs -ra    # 重新导出(re-export)并刷新所有 NFS 共享目录,结合了 -r(重新读取配置)和 -a(应用到所有目录)的功能

⑤ 客户端主机向服务端主机建立 nfs 连接

Ⅰ.想要建立连接我们的客户端也需要下载 nfs-utils 服务程序

bash 复制代码
[root@client ~]# mount /dev/sr0 /mnt

[root@client ~]# dnf install nfs-utils -y

Ⅱ.客户端查询 nfs 服务器(IP 为 192.168.96.142)导出的共享目录列表

bash 复制代码
[root@client ~]# showmount -e 192.168.96.142

Export list for 192.168.96.142:
/nfs/shared *

Ⅲ.创建一个挂载目录 /dbw,在将 /nfs/shared 文件系统挂载到 /dbw 目录(可共享文件路径)

bash 复制代码
[root@client ~]# mkdir /dbw

[root@client ~]# mount 192.168.96.142:/nfs/shared /dbw

Ⅳ.查看 /nfs/shared 路径,可以看到服务端所共享的文件

bash 复制代码
[root@client ~]# ll /dbw

2.开放 /nfs/upload 目录,为 192.168.xxx.0/24 网段主机可以上传目录,并将所有用户及所属的组映射为 nfs-upload,其 UID 和 GID 均为 210

① 编辑 nfs 配置文件

bash 复制代码
[root@server ~]# vim /etc/exports
# 共享目录(根目录)   允许访问的主机*(权限,参数)
/nfs/shared  *(ro)

/nfs/upload  192.168.96.0/24(rw,all_squash,anonuid=210,anongid=210)

② 根据配置文件创建资源文件并查看文件权限,确保用户可读可写 /nfs/shared 路径下文件即可;刷新

bash 复制代码
[root@server ~]# mkdir -pv /nfs/upload
mkdir: 已创建目录 '/nfs/upload'

[root@server ~]# touch /nfs/upload/red{1..10}

[root@server ~]# ll -d /nfs/upload/
drwxr-xr-x. 2 root root 127  5月 19 20:26 /nfs/upload/

[root@server ~]# chmod o+w /nfs/upload/ -R   # 修改其他用户权限,加上可写权限

[root@server ~]# exportfs -ra

③ 根据配置文件中所写,需要创建一个 uid 为 210 且 gid 也为 210 的用户账号

bash 复制代码
[root@client ~]# useradd -r -u 210 nfs-upload

[root@client ~]# id nfs-upload 
用户id=210(nfs-upload) 组id=210(nfs-upload) 组=210(nfs-upload)

④ 客户端查询 NFS 服务器导出的共享目录列表

bash 复制代码
[root@server ~]# showmount -e 192.168.96.142

Export list for 192.168.96.142:
/nfs/shared *
/nfs/upload 192.168.96.0/24

⑤ 将 /nfs/upload 文件挂载到 /dbw 目录并查看共享目录下是否有服务端共享的文件,挂载之前我们先要取消前面挂载到 /dbw 目录下的 /nfs/shared 文件共享目录

bash 复制代码
[root@client ~]# umount 192.168.96.142:/nfs/shared /dbw
umount: /dbw: not mounted.

[root@client ~]# ll /dbw
total 0

[root@client ~]# mount 192.168.96.142:/nfs/upload /dbw

[root@client ~]# ll /dbw

⑥ 在客户端下上传文件并查看

bash 复制代码
[root@client ~]# touch /dbw/red111

[root@client ~]# ll /dbw

3.将 /home/tom 目录仅共享给 192.168.xxx.xxx 这台主机,并只有用户 tom 对该目录有读写权限

① 编辑 nfs 配置文件

bash 复制代码
[root@server ~]# vim /etc/exports

# 共享目录(根目录)   允许访问的主机*(权限,参数)
/nfs/shared  *(ro)

/nfs/upload  192.168.96.0/24(rw,all_squash,anonuid=210,anongid=210)

/home/tom  192.168.96.132(rw,root_squash,all_squash,anonuid=1001,anongid=1001)

② 根据配置文件创建资源文件并查看文件权限,确保 tom 可读可写 /home/tom 路径下文件即可;刷新

bash 复制代码
[root@server ~]# mkdir -pv /home/tom 
mkdir: 已创建目录 '/home/tom'

[root@server ~]# touch /home/tom/tom{1..10}

[root@server ~]# ll -d /home/tom
drwxr-xr-x. 2 root root 127  5月 19 22:00 /home/tom

[root@server ~]# useradd tom

[root@server ~]# chown tom:tom /home/tom    # 改变文件所有者
[root@server ~]# chmod 700 /home/tom     # 改变文件权限仅 tom 用户有读写执行权限

[root@server ~]# exportfs -ra

③ 根据配置文件中所写,创建 tom ,id为 1001

bash 复制代码
[root@client ~]# useradd -u 1001 tom

[root@client ~]# id tom
uid=1001(tom) gid=1001(tom) groups=1001(tom)

④ 将 /home/tom 文件挂载到 /dbw 目录并查看共享目录下是否有服务端共享的文件,挂载之前我们先要取消前面挂载到 /dbw 目录下的 /nfs/upload 文件共享目录

bash 复制代码
[root@client ~]# umount 192.168.96.142:/nfs/upload /dbw
umount: /dbw: not mounted.

[root@client ~]# ll /dbw
total 0

[root@client ~]# mount 192.168.96.142:/home/tom /dbw

[root@client ~]# ll /dbw

⑤ 客户端上创建文件查看权限以及所有者

bash 复制代码
[root@client ~]# touch /dbw/tom111

[root@client ~]# ll /dbw
相关推荐
xiaoye-duck32 分钟前
《Linux系统编程》Linux 进程间通信之管道基础解析:从匿名管道原理到基于管道的进程池实现
linux
z2005093035 分钟前
【Linux学习】Linux中的进程程序替换
linux·服务器·学习
ytdbc1 小时前
OSPF综合实验
网络
bush41 小时前
嵌入式linux学习记录四
linux·运维·学习
kaisun642 小时前
Docker 构建网络问题排查
网络·docker·eureka
lihao lihao2 小时前
软硬链接
linux·运维·服务器
TOWE technology2 小时前
智能安防监控系统如何做好防雷?——视频信号SPD综合应用方案解析
运维·服务器·防雷产品·信号保护·信号防雷·spd
雪度娃娃2 小时前
存储器层次结构——磁盘硬盘存储
服务器·网络·数据库·计算机组成原理
YY&DS2 小时前
Qt 嵌入 CEF 在 Linux 下必须设置 `QT_XCB_GL_INTEGRATION=xcb_egl才能加载网页
linux·开发语言·qt