这个场景我太熟了:办公室一半人用Windows,另一半人用Linux,突然有人喊"文件放到服务器上大家都能访问",你第一反应不是FTP也不是NFS,而是Samba。Samba在Ubuntu上装起来不算复杂,但真正让新手翻车的是装完之后那一串说不清道不明的权限、端口、日志问题。这篇就把整个流程掰开揉碎讲清楚,从安装、配置、用户权限,到Windows/macOS/Linux客户端怎么连,再到出问题怎么查日志、怎么找删除记录,一次性给你捋明白。适合刚接触Ubuntu共享、或者被Samba折腾过但没时间系统排查的朋友。
1. 安装前先想清楚:Samba要解决什么,以及你的共享目录该给谁用
1.1 为什么跨平台共享绕不开SMB/CIFS
如果你所在的网络环境里只有Linux,那NFS可能更顺手;如果只是临时传个文件,scp或者rsync也够用。但如果场景是"Windows机器要和Linux机器互通文件",那SMB/CIFS几乎是绕不开的事实标准,因为Windows系统从90年代开始就把SMB作为默认文件共享协议,后续的SMB 2.0、3.0也是在同一条线上进化。macOS虽然有自己的AFP协议,但对外连接时对SMB的支持也非常成熟。Samba就是在Linux/Unix系统上实现SMB/CIFS协议的服务端软件。
换句话说,Samba解决的是异构网络里文件共享的"最后一公里"问题。只要你的共享目录里有Windows用户、Mac用户、Linux用户同时要访问,Samba就是最省事的方案——它不需要在每台客户端上装额外软件,Windows/Mac直接打开资源管理器输入地址就能连,Linux也可以通过mount命令挂载成普通目录来使用。
1.2 动手之前先画一张存储规划表
很多人装Samba失败或者用起来别扭,问题不在安装步骤,而在动手之前没想清楚到底要给谁用、怎么用。我建议开工前先花五分钟回答下面这几个问题:
- 共享目录放哪里?建议单独划一个目录,比如
/srv/samba/或者/data/share,不要直接把/home或者根目录共享出去,否则权限和安全性很难控制。 - 谁会访问?是只有固定几个同事,还是所有人?是否需要区分只读和可写?
- 用什么身份访问?Samba的账号体系独立于系统账号之外,但通常还是和系统用户绑定,你创建的共享账号同时应该有一个对应的Linux系统用户。
- 访问来源是什么网段?如果只在公司内网用,那就在配置里限制网段,别让共享随便暴露到一个大网里。
拿我自己举例,之前给公司搭文件服务器时,我列的规划大概是:
| 共享名称 | 物理路径 | 使用人 | 权限 | 网段限制 |
|---|---|---|---|---|
| docs | /data/share/docs | 行政、财务 | 可写 | 192.168.1.0/24 |
| tech | /data/share/tech | 研发组 | 可写 | 192.168.1.0/24 |
| public | /data/share/public | 所有人 | 只读 | 192.168.1.0/24 |
有了这张表,后面写smb.conf配置就是按表格填内容,思路特别清晰。别小看这一步,很多朋友稀里糊涂装完Samba,也不知道共享权限该怎么设计,结果不是所有人写坏了文件,就是有人抱怨连不上,最后还得从头再理一遍。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 从apt install到第一个共享:Samba的最短可行路径
2.1 安装samba包并确认smbd/nmbd两个守护进程都在运行
Ubuntu上安装Samba非常简单,官方源里就有现成的包,一条命令搞定:
bash复制sudo apt update
sudo apt install samba
安装过程中不会弹出让你配置什么东西的界面,装完就算完事。Ubuntu的软件仓库会把Samba拆成几个相关包,你直接装samba这个元包,它会自动把主程序、服务文件、依赖都拉进来。装完以后检查一下服务状态:
bash复制sudo systemctl status smbd
sudo systemctl status nmbd
这里有两个守护进程需要注意:
smbd:负责SMB/CIFS文件共享和打印服务,监听445和139端口,这个必须活着。nmbd:负责NetBIOS名称解析和浏览服务,监听137和138端口,主要为了让局域网里的机器能通过主机名找到你,而不是每次都用IP。
如果smbd没在运行,先看看是不是装的过程中出了问题,直接启动它:
bash复制sudo systemctl enable --now smbd
sudo systemctl enable --now nmbd
enable --now的意思是设置开机自启并立即启动。如果不想开机自启,就把enable去掉,不过对于文件服务器来说,开机自启是标配。
2.2 smb.conf的目录规划与最小共享配置块
Samba配置文件在/etc/samba/smb.conf。第一次装好后,这个文件里默认带了一些模板示例和大量注释,看着挺唬人,但核心结构就两大块:[global]全局配置和各个共享段的配置。
这里先给你一个能跑通的最小配置,假设我们要共享/data/share/docs给局域网用户:
ini复制[global]
workgroup = WORKGROUP
server string = %
