Linux搭建简单NFS服务

目录

准备工作:

需求一:

需求二:

需求三:


准备工作:

安装需要的软件(服务端和客户端都需要安装):

复制代码
[root@server ~]# yum install rpcbind -y

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

关闭防火墙以及selinux:

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

启动程序:

复制代码
[root@server ~]# systemctl start rpcbind
[root@server ~]# systemctl start nfs-server

因为nfs服务需要rpc服务为其确定端口号,所以我们先启动rpc服务。

需求一:

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

先创建该目录文件:

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

配置nfs服务文件:

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

/nfs/shared     *(ro)

/etc/exports文件默认不存在,创建就好。

*表示允许所有人共享,ro表示只读。

读取一下配置:

复制代码
[root@server ~]# exportfs -r

查询一下:

复制代码
[root@client ~]# showmount -e 192.168.91.129
Export list for 192.168.91.129:
/nfs/shared *

可以看到服务端有共享文件。

在服务端创建一个文件并且写入123:

复制代码
[root@server ~]# echo 123 > /nfs/shared/1 

在客户端创建一个挂载文件并挂载查看:

复制代码
[root@client ~]# mkdir /m1
[root@client ~]# mount 192.168.91.129:/nfs/shared /m1
[root@client ~]# ll /m1
total 4
-rw-r--r--. 1 root root 4 Jan  9 15:34 1
[root@client ~]# cat /m1/1
123

需求二:

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

创建文件:

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

创建用户:

复制代码
[root@server ~]# groupadd -g 210 nfs-upload 
[root@server ~]# useradd  -u 210 -g nfs-upload nfs-upload
useradd warning: nfs-upload's uid 210 outside of the UID_MIN 1000 and UID_MAX 60000 range.
[root@server ~]# cat /etc/passwd |grep 210
nfs-upload:x:210:210::/home/nfs-upload:/bin/bash

设置用户相对文件权限:

复制代码
[root@server ~]# setfacl -m u:nfs-upload:rwx /nfs/upload

配置文件:

复制代码
/nfs/shared     *(ro)
/nfs/upload     192.168.91.0/24(rw,all_squash,anonuid=210,anongid=210)

读取配置:

复制代码
[root@server ~]# exportfs -r

查看:

复制代码
[root@client ~]# showmount -e 192.168.91.129
Export list for 192.168.91.129:
/nfs/shared *
/nfs/upload 192.168.91.0/24

客户端挂载并写入文件:

复制代码
[root@client ~]# mount 192.168.91.129:/nfs/upload /m1
[root@client ~]# echo 456 > /m1/2
[root@client ~]# ll /m1
total 4
-rw-r--r--. 1 210 210 4 Jan  9  2024 2

服务端查看:

复制代码
[root@server ~]# ll /nfs/upload/
总计 4
-rw-r--r--. 1 nfs-upload nfs-upload 4  1月 9日 16:36 2
[root@server ~]# cat /nfs/upload/2
456

需求三:

将/home/tom目录仅共享给192.168.xxx.xxx这台主机,并只有用户tom可以完全访问该目录

配置文件:

复制代码
/nfs/shared     *(ro)
/nfs/upload     192.168.91.0/24(rw,all_squash,anonuid=210,anongid=210)
/home/tom       192.168.91.133/24(rw,root_squash)

读取配置:

复制代码
[root@server ~]# exportfs -r

创建tom用户(客户端和服务端都需要):

复制代码
[root@server ~]# useradd tom

自动生成权限完全属于tom的目录文件 。

客户端挂载并尝试创建文件:

复制代码
[root@client ~]# mount 192.168.91.129:/home/tom /m1
[root@client ~]# echo 789 > /m1/3
-bash: /m1/3: Permission denied
[root@client ~]# su tom
[tom@client root]$ echo 789 > /m1/3
[tom@client root]$ ll /m1
total 4
-rw-r--r--. 1 tom tom 4 Jan  9  2024 3
[tom@client root]$ cat /m1/3
789

服务端擦查看:

复制代码
[root@server ~]# ll /home/tom
总计 4
-rw-r--r--. 1 tom tom 4  1月 9日 16:56 3
[root@server ~]# cat /home/tom/3
789
相关推荐
坤坤子吖1 小时前
Linux网络编程:自定义应用层协议与 JSON 序列化
linux·服务器·网络·c++·笔记·json
Sayai1 小时前
Neo4j 图数据质量检查实战:环路检测、孤立节点与连通分量,两条 Cypher 引出的数据体检清单(含变长路径性能陷阱)
运维·neo4j·图数据库·数据质量·cypher
青瓦梦滋1 小时前
Redis主从复制
服务器·数据库·redis·缓存·bootstrap
Elastic 中国社区官方博客2 小时前
更少的位数,相同的召回率:DiskBBQ 更保守的自动校准扫描
大数据·运维·开发语言·人工智能·elasticsearch·搜索引擎
方便面不加香菜2 小时前
Docker Volume -- 管理卷Volume详解
运维·docker·容器
沫璃染墨3 小时前
从零入门计算机网络系列(十八):TCP连接管理详解——从三次握手与四次挥手到TIME_WAIT机制
运维·服务器·网络·c++·网络协议·tcp/ip·tcp
Felven3 小时前
华为鲲鹏920s芯片serdestool工具使用说明
linux·运维·服务器·华为·鲲鹏920·serdestool
江湖有缘3 小时前
Docker实战 | 使用Docker部署lemonitor镜像站点列表程序
运维·docker·容器
LabVIEW开发3 小时前
Omron PLC:接 LabVIEW 常踩的 5 个坑
服务器·网络·labview·labview知识·labview功能·labview程序
莫晓燚3 小时前
mall 电商项目完整部署---实战
linux·运维·docker·容器