在Ubuntu Server上使用Samba共享`/data`目录过程
作者:黑风风
在 Linux 与 Windows 混合环境中,Samba(SMB) 是最常见、最稳定的文件共享方案之一。
相比 NFS、iSCSI 等方案,SMB 的优势在于:
- Windows 原生支持
- 使用门槛低
- 对目录结构要求不高
- 非常适合日常文件共享与数据交换
本文记录一次在 Ubuntu Server 上,将 /data 目录通过 SMB 共享给 Windows 使用的完整过程,配置思路偏向简单直接、一步到位。
一、环境说明
- 操作系统:Ubuntu Server 24.04 LTS
- Samba 版本:4.x
- 网络环境:内网
- 共享目录:
/data
目标效果是:
- Ubuntu 本机可直接读写
/data - Windows 可通过 SMB 远程读写
/data - 不引入额外的权限模型复杂度
二、安装 Samba
首先安装 Samba 相关组件:
apt update apt install -y samba
安装完成后,系统会自动启动 smbd 服务,但此时还没有任何目录被共享。
三、确认共享目录
本文示例共享的是 /data 目录,请先确认该目录存在:
ls -ld /data
示例输出:
drwxr-xr-x 3 root root 4096 Jan 14 02:57 /data
只要目录存在,即可作为 Samba 的共享路径。
SMB 共享的是目录路径,并不要求该目录一定是磁盘挂载点。
四、为 root 创建 Samba 登录密码
需要注意的是,Samba 使用的是独立的用户认证体系,并不会直接使用 Linux 用户密码。
因此,即使系统中存在 root 用户,也需要单独为其创建 Samba 登录密码:
smbpasswd -a root
按提示输入两次密码,完成后会看到:
Added user root.
这个密码仅用于 SMB 登录,与 Linux 系统登录密码互不影响。
五、配置 Samba 共享/data
编辑 Samba 配置文件 /etc/samba/smb.conf,在文件末尾追加一个共享段:
cat >> /etc/samba/smb.conf <<'EOF'
[data]
path = /data
browseable = yes
read only = no
writable = yes
valid users = root
force user = root
force group = root
create mask = 0664
directory mask = 0775
EOF
这段配置的含义比较直观:
- 共享名为
data - 实际共享路径为
/data - 允许读写
- 通过 root 用户访问
- 所有文件与目录均以 root 身份创建
六、重启 Samba 并检查配置
配置完成后,重启 Samba 服务:
systemctl restart smbd
使用 testparm 检查配置是否正确:
testparm
如果输出中显示配置加载成功,并且能看到 [data] 共享段,说明配置已生效。
七、Windows 端访问方式
在 Windows 资源管理器地址栏中输入:
\\服务器IP\data
例如:
\\192.168.100.152\data
登录时输入:
- 用户名:
root - 密码:之前通过
smbpasswd设置的密码
连接成功后,即可像普通网络共享一样使用该目录,读写行为会实时反映到 Ubuntu 的 /data 目录中。
八、使用效果说明
完成以上配置后:
- Ubuntu 本地对
/data的操作不受影响 - Windows 端可以自由创建、修改、删除文件
- 不存在额外的权限同步或 ACL 继承问题
- 行为简单直观,便于理解和维护
这种配置方式非常适合:
- 文件中转
- 临时共享
- 内网环境下的数据交换
- 对权限模型要求不复杂的场景
九、总结
Samba 的本质是将 Linux 目录通过网络暴露为 Windows 可访问的文件系统接口。
在不引入复杂用户和权限体系的前提下,直接共享一个明确的目录,可以大幅降低搭建和维护成本。
如果你的需求是:
- 快速可用
- 行为可预期
- 不纠结权限细节
那么这种配置方式会非常顺手。
后续如果需要更精细的用户隔离或权限控制,可以再逐步引入专用用户、ACL 等机制即可。
参考链接:
- Samba 官方网站
- https://www.samba.org/
- Samba 项目的官方入口,包含项目介绍、版本说明和社区资源。
- Samba 官方文档(最新)
- https://www.samba.org/samba/docs/
- 覆盖 Samba 架构、配置文件说明、权限模型等核心内容。
- smb.conf 配置项完整说明
- https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html
- 所有
smb.conf参数的权威参考,适合查阅具体参数含义和默认行为。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
