Linux搭建Samba共享步骤详解
时间:2026-04-25 23:55:20 383浏览 收藏
本文详细介绍了在Linux系统中搭建Samba文件共享服务的完整流程,涵盖从安装smbd和nmbd守护进程、创建安全可控的共享目录、精准配置smb.conf核心文件、添加独立认证的Samba用户,到启动服务并配置防火墙放行关键端口的每一步操作,兼顾Debian/Ubuntu与RHEL系发行版的差异,同时强调SELinux上下文等易被忽视的安全细节,是Windows与Linux跨平台无缝文件共享的实用、可靠、开箱即用的权威指南。

如果您希望在Linux系统中实现与Windows客户端的文件共享,Samba是标准且兼容性良好的解决方案。以下是完成Samba文件共享配置的具体步骤:
一、安装Samba服务
在大多数Linux发行版中,Samba未默认安装,需通过包管理器手动安装。安装过程会同时部署smbd和nmbd两个核心守护进程,分别负责文件共享服务和NetBIOS名称解析。
1、对于基于Debian/Ubuntu的系统,执行:sudo apt update && sudo apt install samba
2、对于基于RHEL/CentOS/Rocky Linux/AlmaLinux的系统,执行:sudo dnf install samba samba-common-tools
3、验证安装是否成功:smbd --version
二、创建共享目录并设置权限
共享目录需具备明确的文件系统权限和SELinux上下文(如启用SELinux),否则Samba进程可能因权限拒绝而无法访问该路径。
1、新建专用共享目录:sudo mkdir -p /srv/samba/shared
2、设置目录属主为samba用户组(如存在sambashare组)或通用组:sudo chgrp sambashare /srv/samba/shared
3、赋予组读写执行权限:sudo chmod 2775 /srv/samba/shared
4、若系统启用SELinux,需添加samba_share_t类型:sudo semanage fcontext -a -t samba_share_t "/srv/samba/shared(/.*)?"
5、应用SELinux上下文变更:sudo restorecon -Rv /srv/samba/shared
三、配置smb.conf主配置文件
smb.conf是Samba服务的核心配置文件,需在[global]节中定义基础行为,并新增独立的共享节以声明可访问路径及其访问策略。
1、备份原始配置:sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
2、使用文本编辑器打开配置文件:sudo nano /etc/samba/smb.conf
3、在[global]段末尾添加以下行以启用用户认证和UTF-8支持:security = user
4、在文件末尾新增共享定义节:[shared]
5、在[shared]节下逐行添加:path = /srv/samba/shared
6、继续添加:browseable = yes
7、继续添加:read only = no
8、继续添加:valid users = @sambashare
四、创建Samba专用用户账户
Samba不直接复用系统密码,需为每个需访问共享的用户单独设置Samba密码。该账户必须已在系统中存在,且密码独立存储于/etc/samba/smbpasswd中。
1、确保目标用户已存在于系统中,例如user1:sudo useradd -M -G sambashare user1
2、为该用户设置Samba密码(不显示输入内容):sudo smbpasswd -a user1
3、启用该用户账户(如被禁用):sudo smbpasswd -e user1
4、确认用户已加入sambashare组:groups user1
五、启动并启用Samba服务
Samba依赖smbd(提供CIFS/SMB协议服务)和nmbd(提供NetBIOS名称服务)两个服务协同工作。防火墙需放行对应端口,且服务应设为开机自启。
1、启动smbd服务:sudo systemctl start smbd
2、启动nmbd服务:sudo systemctl start nmbd
3、启用开机自启:sudo systemctl enable smbd nmbd
4、开放防火墙中的Samba端口(TCP 139, 445;UDP 137, 138):sudo ufw allow 'Samba'(Ubuntu)或sudo firewall-cmd --permanent --add-service=samba && sudo firewall-cmd --reload(RHEL系)
5、检查服务运行状态:sudo systemctl status smbd nmbd
理论要掌握,实操不能落!以上关于《Linux搭建Samba共享步骤详解》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
160 收藏
-
179 收藏
-
419 收藏
-
350 收藏
-
141 收藏
-
244 收藏
-
176 收藏
-
157 收藏
-
383 收藏
-
368 收藏
-
133 收藏
-
179 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习