RHEL_NFS服务器

复制代码
架设一台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可以完全访问该目录

一、基础环境准备

1.1安装rpc和nfs

cs 复制代码
yum  install  nfs-utils  -y  
yum  install  rpcbind  -y   # 默认已安装

1.2启动NFS相关服务

cs 复制代码
# 启动并启用rpcbind服务
systemctl start rpcbind
systemctl enable rpcbind

# 启动并启用NFS服务
systemctl start nfs-server
systemctl enable nfs-server

1.3创建所需共享文件

复制代码
mkdir -p /nfs/shared
mkdir -p /nfs/upload
mkdir -p /home/tom

二、配置/etc/exports文件

2.1 编辑exports配置文件

复制代码
vim /etc/exports

2.2添加以下配置内容

cs 复制代码
# 1. 开放/nfs/shared目录,供所有用户查询资料
/nfs/shared *(ro,sync,all_squash)

# 2. 开放/nfs/upload目录,为192.168.111.0/24网段主机可以上传目录
# 并将所有用户及所属的组映射为nfs-upload,其UID和GID均为210
/nfs/upload 192.168.111.0/24(rw,sync,all_squash,anonuid=210,anongid=210)

# 3. 将/home/tom目录仅共享给192.168.111.100这台主机,并只有用户tom可以完全访问该目录
/home/tom 192.168.111.100(rw,sync,no_all_squash)

三、参数详解与配置说明

3.1 权限参数说明

cs 复制代码
ro:只读访问权限

rw:读写访问权限

sync:数据同步写入内存和硬盘,保证数据一致性

all_squash:无论NFS客户端使用什么账户访问,均映射为NFS 服务器的匿名账户(nobody),推荐

no_all_squash:保留远程用户的UID和GID权限

anonuid/anongid:指定匿名用户的UID和GID

no_root_squash:root用户保持root权限(慎用)

3.2 创建映射用户和设置权限

cs 复制代码
# 创建nfs-upload用户组(GID=210)
groupadd -g 210 nfs-upload

# 创建nfs-upload用户(UID=210)
useradd -u 210 -g 210 nfs-upload

# 设置目录权限
chown -R nfs-upload:nfs-upload /nfs/upload
chmod -R 755 /nfs/shared
chmod -R 775 /nfs/upload

# 设置tom用户对/home/tom目录的权限
chown -R tom:tom /home/tom
chmod -R 700 /home/tom

四、应用配置并验证

4.1 重新加载exports配置

cs 复制代码
# 或者重新启动NFS服务
systemctl restart nfs-server

4.2验证共享目录是否正确导出

cs 复制代码
# 查看本机共享的目录列表
showmount -e

# 或者查看指定IP的共享
showmount -e localhost

五、客户端挂载与测试

5.1安装rpc和nfs,并启动服务

cs 复制代码
#安装rpc和nfs
yum  install  nfs-utils  -y  
yum  install  rpcbind  -y   # 默认已安装

# 启动并启用rpcbind服务
systemctl start rpcbind
systemctl enable rpcbind

# 启动并启用NFS服务
systemctl start nfs-server
systemctl enable nfs-server

5.2 客户端挂载共享目录

cs 复制代码
# 创建本地挂载点
mkdir -p /nfs/nfs_shared
mkdir -p /nfs/nfs_upload
mkdir -p /nfs/tom

# 挂载共享目录
mount -t nfs 服务器IP:/nfs/shared /nfs/nfs_shared
mount -t nfs 服务器IP:/nfs/upload /nfs/nfs_upload
mount -t nfs 服务器IP:/home/tom /nfs/tom
查看挂载情况
cs 复制代码
df -h

5.3 测试读写权限

5.3.1
cs 复制代码
# 测试/nfs/shared目录(应只读)
touch /nfs/shared/test.txt  # 应该失败
5.3.2
cs 复制代码
# 测试/nfs/upload目录(应可写)
touch /nfs/upload/zhangsan.txt  # 应该成功
5.3.3
cs 复制代码
# 检查文件所有权
ls -l /nfs/upload/zhangsan.txt  # 应该显示UID/GID为210
5.3.4
cs 复制代码
[root@centos100 ~]# su - tom
上一次登录:日 11月 16 14:29:11 CST 2025pts/0 上
-bash-4.2$ touch /home/tom test.txt11
-bash-4.2$ exit
登出

[root@centos100 ~]# ll /home/tom
ls: 无法打开目录/home/tom: 权限不够

#创建用户zhangsan
groupadd zhangsan
useradd zhangsan -g zhangsan


[root@centos100 ~]# su - zhangsan
上一次登录:日 11月 16 14:25:04 CST 2025pts/0 上
-bash-4.2$ touch /home/tom xixi
touch: 正在设置"/home/tom" 的时间: 权限不够
touch: 无法创建"xixi": 权限不够
-bash-4.2$

#到服务器查看/home/tom
[root@master ~]# ll /home/tom
total 0
-rw-rw-r-- 1 tom tom 0 Nov 16 15:10 test.txt11
相关推荐
陌路2036 分钟前
Linux42 守护进程
linux
liteblue40 分钟前
DEB包解包与打包笔记
linux·笔记
minji...1 小时前
Linux 基础IO(一) (C语言文件接口、系统调用文件调用接口open,write,close、文件fd)
linux·运维·服务器·网络·数据结构·c++
赖small强1 小时前
【Linux内存管理】Linux虚拟内存系统详解
linux·虚拟内存·tlb
码龄3年 审核中1 小时前
Linux record 04
linux·运维·服务器
RisunJan1 小时前
Linux命令-ftptop命令(实时监控 ProFTPD 服务器连接状态)
linux·运维·服务器
虾..1 小时前
Linux 文件描述符,重定向及缓冲区理解
linux·运维·服务器
真正的醒悟1 小时前
202503-经验之道
服务器·网络·php
fengyehongWorld2 小时前
Linux lftp命令
linux
赖small强2 小时前
【Linux C/C++开发】Linux C/C++ 堆栈溢出:原理、利用与防护深度指南
linux·c语言·c++·stack·堆栈溢出