使用Samba/NFS实现文件共享/自动挂载共享目录/autofs自动挂载服务

SMB(server message block):服务器消息块协议。初始目的是为了解决局域网内的文件或打印机等资源共享的问题。支持windows挂载,linux挂载

下载smb:dnf install samba samba-client -y

samba-client

Samba 套件里客户端工具包,用于 Linux 系统访问 Windows 共享 / Linux Samba 服务共享

格式:smbclient -U 用户名 -L //服务端IP

参数

参数 功能
-L 列出远程主机所有共享资源
-U [user] 指定 Samba 共享用户名
-c "cmd" 执行单条命令,非交互模式
-N 无密码访问(匿名共享)
-p [端口] 指定端口(默认 445,旧环境 139)
-A authfile 使用账号密码文件,避免明文输密码

smb的主配置文件

/etc/samba/smb.conf

共享每位登录用户和的家目录内容,虽然某些情况下可以方便的共享文件,但是这个操作存在危险,建议删除

用SMB协议共享本地的打印机设备,可以方便局域网内的用户远程使用打印机设备。没有打印机设备,建议删除

共享打印机设备的参数,建议删除

精简版配置文件

security:

用户登录Samba服务时采用的验证方式。共4总

share:主机无需验证密码。

user:登录Samba服务时使用账户密码验证

domain:通过与服务器进行身份验证,用来限制用户的来源域

server:使用独立的主机验证来访问的用户提供的密码。

tdbsam

保存Samba服务账户和密码的数据库,用户需使用pdbedit命令独立添加账户密码

pdbedit

管理Samba服务程序的账户信息数据库

格式:pdbedit 【参数】 账户

参数:

-a 账户名:建立Samba账户

-x 账户名:删除Samba账户

-L:列出账户列表

-Lv:列出账户详细信息的列表

配置共享资源/samba

用于设置Samba服务程序的格式以及作用

加在主配置文件中

参数 作用
database 共享名称为 database
comment = Do not arbitrarily modify the database file 警告用户不要随意修改数据库
path = /home/database 共享目录为 /home/database
public = no 关闭 "所有人可见"
writable = yes 允许写入操作

1.创建用于访问共享资源的账户信息

用户名是stu,密码是123

2.创建用于共享资源的文件目录

设置正确的安全上下文值为samba_share_t。

在修改后执行restorecon命令即可生效新的安全上下文。

注意修改目录的其他用户权限改为可读可写,所有者权限值设为7

目录的可执行权限是能不能进入目录里

设置安全上下文:

3.设置SELinux策略,使其允许通过Samba服务程序访问目录

必须做,否则不能访问文件夹中得目录

SELinux 布尔名称 核心作用
samba_create_home_dirs 允许 Samba 服务自动创建用户家目录
samba_domain_controller 允许 Samba 充当 Windows 域控制器
samba_enable_home_dirs 允许 Samba 访问 /home/ 下系统原生用户家目录
samba_export_all_ro 允许 Samba只读导出服务器任意目录
samba_export_all_rw 允许 Samba读写导出服务器任意目录
samba_load_libgfapi 允许 Samba 加载 GFAPI 库访问 GlusterFS 存储
samba_portmapper 允许 Samba 使用端口映射服务
samba_run_unconfined 允许 Samba 程序运行无限制域的脚本程序
samba_share_fusefs 允许 Samba 共享 FUSE 挂载的文件系统
samba_share_nfs 允许 Samba 共享已经被 NFS 挂载的目录
sanlock_use_samba sanlock 存储锁服务访问 Samba
tmpreaper_use_samba 临时文件清理工具访问 Samba 共享
use_samba_home_dirs 允许其他服务通过 Samba 访问用户家目录
virt_use_samba 允许 KVM 虚拟机访问 Samba 共享

4.修改Samba主配置文件

5.重启Samba服务在另一台主机测试

Windows挂载共享

登录成功

创建并写入文件

linux挂载

在发起共享的一端安装支持文件共享服务的软件包cifs-utils

组成部分 详细解释
mount 挂载命令,用于将远程共享挂载到本地目录
-t cifs -t 指定文件系统类型;cifs 协议,Linux 访问 Samba/Windows 共享
-o 挂载附加选项,后面跟随多个逗号分隔参数
username=stu Samba 共享登录用户名
password=123 Samba 共享对应的访问密码
//192.168.143.144/database 远程共享地址192.168.143.144:Samba 服务端 IPdatabase:smb.conf 配置中的共享名
/database 客户端本地挂载点目录,访问此目录等价访问远端共享

挂载成功

永久自动挂载 linux

安装 Samba服务多的账户名、密码、共享域的顺序将相关信息写到一个认证文件中,然后让/etc/fstab文件夹中让系统自动加在。为了让信息不被其他人看到,最后把这个认证文件的权限修改为仅root可读写。

NFS

网络文件系统(NFS)允许远程主机通过网络挂载文件系统,并像它们挂载在本地那样与这些文件系统进行交互。这可将资源整合到网络的集中服务器中

安装dfs服务的所需软件包

dnf install dnf-utils -y

这里使用master(192.168.143.144)作为客户端

slave(192.168.143.145)作为服务器端

1.在服务端配置防火墙策略

2.服务端建立NFS共享文件

目录的可执行权限是能不能进入目录

3.配置NFS的配置文件

/etc/exports,默认为空

文件参数:

参数 含义 备注
rw 读写权限 允许客户端读写共享目录
ro 只读权限 仅浏览读取,无法新建 / 修改 / 删除
sync 同步写入 写入数据立刻落盘;数据安全,生产推荐
async 异步写入 先缓存再写入磁盘;速度快,断电容易丢数据
root_squash root 压缩(默认开启) 以NFS客户端 root 访问时 → 映射为服务端 nobody 匿名用户;安全默认
no_root_squash 不压缩 root 以NFS客户端 root 访问时,保持 root 身份;危险!慎用
all_squash 全部用户压缩 无论NFS客户端用什么账户访问,全部映射为 nobody
anonuid=xxx 指定匿名 UID 搭配 all_squash/root_squash,自定义匿名用户 ID
anongid=xxx 指定匿名 GID 自定义匿名组 ID
insecure 允许高位端口连接 客户端使用大于 1024 端口挂载时添加,实验环境常用
secure 仅允许 1-1024 端口 默认,安全限制
no_subtree_check 关闭子树检查 共享目录只是文件系统一部分时开启,减少报错
subtree_check 开启子树检查(默认) 安全校验,性能略低

4.启动NFS服务

由于在使用NFS服务进行文件共享前,需使用RPC(远程过程调用)服务将NFS服务器的ip地址和端口号等信息发送给客户端,因此,在启动NFS服务前,还要先重启rpcbind服务程序。

顺序固定

5.客户端配置

先使用showmount命令查询NFS服务器的远程共享信息。

参数:

-e:显示NFS服务器的共享列表

-a:显示所有已经挂载的NFS的客户端主机名和挂载点

-v:显示版本号

输出的格式:共享的目录名称 允许使用的客户端地址

6.创建挂载目录,挂载

格式:-t,指定挂载的文件系统类型 服务器ip地址:/服务器的共享目录 挂载点

能够实现创建共享

如果希望nfs共享一直有效

写入/etc/fstab中

autofs自动挂载服务

dnf intall autofs

无论是 Samba 服务还是 NFS 服务,都需要将挂载信息写入/etc/fstab文件中,远程共享资源就会自动随服务器开机而挂载。这虽然很方便,但如果挂载的远程资源太多,会给网络带宽和服务器的硬件资源带来很大负担。

如果挂载的资源长期不使用,也会造成服务器硬件资源的浪费。由于网络的问题,NFS服务器与客户端的连接不会一直存在,当我们挂载了NFS服务器之后,任何一方脱机都可能造 成另外一方等待超时。为了解决这样的问题,就出现了下面的想法:

当客户端在有使用NFS文件系统的需求时才让系统自动挂载。

当NFS文件系统使用完毕后,让NFS自动卸载。

autofs这个服务是在客户端的上面,它会持续的检测某个指定的目录,并预先设置当使用到该目录的某个子目录时, 将会取得来自服务器端的NFS文件系统资源,并进行自动挂载的操作。

autofs配置文件

/etc/auto.master

主配置文件

修改格式:挂载父目录 子配置文件

注意:

  1. 父目录仅填写一级目录;autofs启动后接管该目录

  2. 挂载子目录无需手动预先创建

  3. 访问触发:cd/ls访问子路径时,自动创建临时目录并执行挂载

  4. 闲置超时(默认5分钟)自动卸载,销毁临时子目录

  5. 子配置文件内只写子目录名,不能携带父路径

  6. 修改配置后执行 systemctl reload autofs 重载生效 ⚠️ 禁止手动提前创建挂载子目录,会引发挂载故障

对应的子配置文件对这个挂载目录的挂载信息进一步说明。需自己定义,通常后缀名为.misc

创建挂载目录

主配置文件编写内容:

/misc /etc/auto.misc是一个自动挂载的参考文件

去到子配置文件中,填写详细信息

在子配置文件中应按照格式:挂载子目录 挂载文件类型及权限 :设备名

注意此时nfs-auto1目录为空

重启auto服务再次查看

在master编写的文件在slave也能看见

相关推荐
2035去旅行1 分钟前
bootcmd 详细讲解
linux·嵌入式·arm·soc
陈希1231 小时前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
女神下凡1 小时前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
@兽血沸腾2 小时前
Windows系统安装Jenkins部署应用至远程Windows服务器操作指南
运维·服务器·jenkins
且从容.5 小时前
Ubuntu安装flume
linux·ubuntu·flume
承渊政道5 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
讯捷蓝达7 小时前
戴尔R720xd服务器卡死在 “Configuring Memory...Done“,换了内存还是卡?问题根本不在内存
运维·服务器
且从容.8 小时前
ubuntu安装flink
linux·ubuntu·flink
数字新视界10 小时前
动环监控信创适配在智能机房管理中的应用价值与未来展望
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
爱和冰阔落10 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络