如何在Linux上设置文件共享(如Samba)

来源:图像处理网作者:星宫一花头衔:网络博主
导读:本期聚焦于小伙伴创作的《如何在Linux上设置文件共享(如Samba)》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何在Linux上设置文件共享(如Samba)》有用,将其分享出去将是对创作者最好的鼓励。

在Linux系统中搭建文件共享服务,Samba是最常用的方案之一,它支持SMB/CIFS协议,能够实现Linux与Windows、macOS等系统的跨平台文件共享,满足多设备之间的文件传输和访问需求。

如何在Linux上设置文件共享(如Samba)

安装Samba服务

首先需要在Linux系统中安装Samba相关的软件包,不同发行版的安装命令略有差异:

Debian/Ubuntu系统

# 更新软件源
sudo apt update
# 安装Samba服务及客户端工具
sudo apt install samba smbclient -y

CentOS/RHEL系统

# 安装Samba服务及客户端工具
sudo yum install samba samba-client samba-common -y

配置Samba共享目录

Samba的核心配置文件是smb.conf,默认路径为/etc/samba/smb.conf,我们可以先备份原配置文件,再自定义共享规则。

创建共享目录并设置权限

首先创建一个用于共享的目录,比如/data/share,同时设置合适的读写权限:

# 创建共享目录
sudo mkdir -p /data/share
# 设置目录权限,允许所有用户读写(可根据实际需求调整)
sudo chmod 777 /data/share
# 如果需要指定用户访问,可先创建系统用户再设置Samba密码
sudo useradd smbuser
sudo smbpasswd -a smbuser

编辑smb.conf配置文件

在配置文件末尾添加自定义共享段,以下是基础配置示例:

[public_share]
    comment = Public Share Directory
    path = /data/share
    browseable = yes
    writable = yes
    guest ok = yes
    create mask = 0666
    directory mask = 0777

配置项说明:

  • comment:共享目录的描述信息
  • path:共享目录的实际路径
  • browseable:是否允许其他设备浏览到该共享
  • writable:是否允许写入操作
  • guest ok:是否允许匿名访问
  • create mask/directory mask:新建文件和目录的权限掩码

启动并配置Samba服务

配置完成后需要启动Samba服务,同时设置开机自启,还要调整防火墙规则开放对应端口。

启动服务

# 启动Samba服务
sudo systemctl start smbd nmbd
# 设置开机自启
sudo systemctl enable smbd nmbd
# 检查服务状态
sudo systemctl status smbd

防火墙规则配置

Samba默认使用139和445端口,需要开放这两个端口的访问权限:

UFW防火墙(Debian/Ubuntu)

sudo ufw allow 139/tcp
sudo ufw allow 445/tcp
sudo ufw reload

Firewalld防火墙(CentOS/RHEL)

sudo firewall-cmd --permanent --add-port=139/tcp
sudo firewall-cmd --permanent --add-port=445/tcp
sudo firewall-cmd --reload

测试Samba共享可用性

配置完成后可以在本地或者其他设备测试共享是否正常可用。

本地测试

使用smbclient工具测试本地共享访问:

# 列出本机所有Samba共享
smbclient -L localhost -U smbuser
# 访问指定共享目录
smbclient //localhost/public_share -U smbuser

Windows设备访问

在Windows文件资源管理器的地址栏输入\Linux服务器IPpublic_share,如果是匿名访问可以直接进入,需要账号密码的话输入对应的Samba用户名和密码即可访问共享目录。

Linux设备访问

其他Linux设备可以通过smbclient或者挂载的方式访问共享:

# 挂载Samba共享到本地目录
sudo mkdir -p /mnt/samba_share
sudo mount -t cifs //192.168.0.1/public_share /mnt/samba_share -o username=smbuser,password=设置的Samba密码

常见问题排查

如果访问共享失败,可以从以下几个方面排查:

  • 检查smb.conf配置文件语法是否正确,可使用testparm命令验证
  • 确认共享目录的Linux系统权限和Samba配置权限是否匹配
  • 检查防火墙是否开放了139和445端口
  • 确认Samba服务是否正常运行,查看/var/log/samba/目录下的日志排查错误

SambaLinux文件共享smb.confsystemctlsmbclient修改时间:2026-07-09 21:30:36

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。