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

参考链接:

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

相关文章

  • Apache Ignite概念及使用问题小结

    Apache Ignite概念及使用问题小结

    Apache Ignite 是一个以内存为中心的分布式数据库、缓存和处理平台,设计用于在横向扩展的架构上提供极高的性能和吞吐量,本文给大家介绍Apache Ignite概念及使用问题小结,感兴趣的朋友一起看看吧
    2025-10-10
  • CentOS系统卸载桌面并以shell字符界面启动的操作指南

    CentOS系统卸载桌面并以shell字符界面启动的操作指南

    CentOS是一款广泛应用于服务器和企业环境的Linux发行版,其稳定性和高效性受到广大用户的青睐,然而,在一些资源有限或对性能要求较高的场景中,图形界面可能会占用过多的系统资源,影响整体效率,因此本文将为您讲解如何在CentOS系统上卸载桌面并设置为字符界面启动
    2026-04-04
  • Ubuntu配置静态IP的两种方法

    Ubuntu配置静态IP的两种方法

    在本教程中,您将了解有关 Ubuntu 静态 IP 地址配置的所有信息,我们将为读者Ubuntu配置静态IP的两种方法以及详细的配置过程,通过图文介绍的非常详细,需要的朋友可以参考下
    2024-10-10
  • Linux中特殊权限SUID、SGID与SBIT的深入讲解

    Linux中特殊权限SUID、SGID与SBIT的深入讲解

    linux对文件的权限管理简直是让人叹为观止,所以这篇文章主要给大家介绍了关于Linux中特殊权限SUID、SGID与SBIT的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-09-09
  • 解决Linux系统yum安装报错Cannot find a valid baseurl for repo的问题

    解决Linux系统yum安装报错Cannot find a valid base

    本文介绍了如何在Linux系统中设置本地yum源,包括修改yum配置文件、禁用默认网络源、创建挂载点以及挂载镜像文件等步骤,操作详细,适合需要离线安装软件或更新系统的用户参考
    2024-09-09
  • Linux使用watch命令监控Docker容器状态的操作方法

    Linux使用watch命令监控Docker容器状态的操作方法

    在现代的开发和运维环境中,容器化技术已经成为一种重要的趋势,而Docker作为最流行的容器化平台之一,Linux中的watch命令就是一个非常有用的工具,它可以帮助我们定期执行指定的命令,并全屏显示输出,本文给大家介绍了在Linux中使用watch命令监控Docker容器状态
    2024-10-10
  • Apache实现禁止中文浏览器访问与301重定向的方法

    Apache实现禁止中文浏览器访问与301重定向的方法

    这篇文章主要介绍了Apache实现禁止中文浏览器访问与301重定向的方法,通过修改.htaccess的配置来实现非常简便,需要的朋友可以参考下
    2016-01-01
  • Ubuntu系统中查看网络速率的几种方法

    Ubuntu系统中查看网络速率的几种方法

    这篇文章主要给大家介绍了在 Ubuntu系统中,可以使用以下几种方法查看网络速率,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-11-11
  • Linux后台运行Java应用的两种方式详解

    Linux后台运行Java应用的两种方式详解

    在现代软件开发和运维实践中,将 Java 应用部署到 Linux 服务器并使其稳定、可靠地在后台运行是每个开发者和系统管理员必须掌握的核心技能,本文将深入探讨两种主流的 Linux 后台运行 Java 应用的方式,需要的朋友可以参考下
    2026-03-03
  • 如何修改CentOS服务器时间为北京时间

    如何修改CentOS服务器时间为北京时间

    这篇文章主要介绍了修改CentOS服务器时间为北京时间的相关知识,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2018-10-10

最新评论