在Ubuntu Server上使用Samba共享`/data`目录过程

 更新时间:2026年05月28日 10:06:39   作者:黑风风  
在Linux与Windows混合环境中,本文详细介绍了如何在Ubuntu Server上配置Samba,实现/data目录的文件共享,满足日常文件共享与数据交换需求,通过简单直接的配置步骤,Windows用户可以方便地访问与操作该共享目录

在 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 等机制即可。

参考链接:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

最新评论