在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参数的权威参考,适合查阅具体参数含义和默认行为。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
CentOS系统卸载桌面并以shell字符界面启动的操作指南
CentOS是一款广泛应用于服务器和企业环境的Linux发行版,其稳定性和高效性受到广大用户的青睐,然而,在一些资源有限或对性能要求较高的场景中,图形界面可能会占用过多的系统资源,影响整体效率,因此本文将为您讲解如何在CentOS系统上卸载桌面并设置为字符界面启动2026-04-04
解决Linux系统yum安装报错Cannot find a valid base
本文介绍了如何在Linux系统中设置本地yum源,包括修改yum配置文件、禁用默认网络源、创建挂载点以及挂载镜像文件等步骤,操作详细,适合需要离线安装软件或更新系统的用户参考2024-09-09
Linux使用watch命令监控Docker容器状态的操作方法
在现代的开发和运维环境中,容器化技术已经成为一种重要的趋势,而Docker作为最流行的容器化平台之一,Linux中的watch命令就是一个非常有用的工具,它可以帮助我们定期执行指定的命令,并全屏显示输出,本文给大家介绍了在Linux中使用watch命令监控Docker容器状态2024-10-10


最新评论