在 Ubuntu 系统中安装与配置 Samba:实现 Linux 与 Windows 跨平台文件共享
Samba 是一款开源软件,核心功能是打通 Linux 与 Windows 系统的文件共享壁垒,让两类系统可通过 “网络邻居” 或 “映射磁盘” 的方式,便捷访问彼此的文件目录。本文将以 Ubuntu 系统为例,提供从 Samba 安装、共享目录配置、用户权限设置到服务测试的完整操作指南,确保跨平台文件共享稳定运行。
一、前提准备
二、步骤 1:安装 Samba 服务
Samba 在 Ubuntu 的官方软件源中可直接获取,通过终端命令即可完成安装,步骤如下:
1. 更新软件包列表
首先更新 Ubuntu 的软件源索引,确保获取到最新的 Samba 安装包:
bash
sudo apt update
输入管理员密码(输入时无字符显示,按Enter确认),等待更新完成(约 1-3 分钟,取决于网络速度)。
2. 安装 Samba 主服务
执行以下命令安装 Samba 核心组件(smbd为 Samba 文件共享服务,nmbd为 NetBIOS 名称解析服务,会自动连带安装):
bash
sudo apt install samba -y
3. 验证 Samba 安装成功
通过查看 Samba 版本,确认安装是否生效:
bash
sudo smbd --version
若输出类似Version 4.15.13-Ubuntu的信息,说明 Samba 已成功安装。
三、步骤 2:配置共享目录(核心操作)
Samba 需指定 “共享目录”(即 Linux 中对外开放的文件夹),并配置目录权限与访问规则,具体分为 “创建目录→设置权限→备份配置文件→编辑共享规则” 四步。
1. 创建共享目录
选择一个路径作为共享目录(建议放在用户目录下,如/home/你的用户名/shared,避免权限冲突),本文以/home/user/shared为例(user需替换为你的 Ubuntu 用户名):
bash
# -p 参数:若父目录不存在,自动创建(如/home/user不存在时会先创建user目录)sudo mkdir -p /home/user/shared
2. 设置共享目录权限
Samba 用户需对共享目录有 “读写权限”,否则 Windows 端可能无法访问或修改文件,执行以下命令配置权限:
bash
# 1. 设置目录所有者为你的Ubuntu用户(user替换为实际用户名)sudo chown -R user:user /home/user/shared# 2. 设置目录权限:所有者与同组用户可读写执行,其他用户可读执行(775权限)sudo chmod -R 775 /home/user/shared
3. 备份 Samba 原始配置文件
Samba 的核心配置文件为/etc/samba/smb.conf,修改前建议备份原始文件,避免配置错误导致服务无法启动:
bash
# 将原始配置文件备份为 smb.conf.baksudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
若后续配置出错,可通过sudo cp /etc/samba/smb.conf.bak /etc/samba/smb.conf恢复原始配置。
4. 编辑 Samba 共享规则
使用nano或vim编辑器修改smb.conf,在文件末尾添加共享目录的配置规则(本文以nano为例,操作更简单):
(1)打开配置文件
bash
sudo nano /etc/samba/smb.conf
(2)添加共享配置
在文件末尾粘贴以下内容(需将user替换为你的 Ubuntu 用户名,/home/user/shared替换为实际共享目录路径):
ini
# 共享名称:Windows端访问时显示的名称(可自定义,如"Ubuntu_Share")[shared] path = /home/user/shared # 共享目录的实际路径(必须与步骤1创建的目录一致) read only = no # 关闭只读模式,允许Windows端修改文件 browsable = yes # 允许Windows在网络中“看到”该共享目录 valid users = user # 允许访问的Samba用户(后续会创建,需与Ubuntu用户名一致) writable = yes # 明确允许写入权限(与read only = no配合生效) comment = Ubuntu Samba Share # 共享目录的备注说明(可选,方便识别)
(3)保存并退出
四、步骤 3:创建 Samba 用户并启用
Samba 用户需与 Ubuntu 系统用户关联(但密码可不同),通过smbpasswd命令创建并启用 Samba 用户,确保 Windows 端可通过该用户登录访问。
1. 创建 Samba 用户
执行以下命令,为 Ubuntu 系统中的user用户(需替换为实际用户名)创建 Samba 访问权限:
bash
sudo smbpasswd -a user
2. 启用 Samba 用户(若已存在需激活)
若user是 Ubuntu 旧用户,且之前未启用 Samba 访问,需执行以下命令激活用户:
bash
sudo smbpasswd -e user
五、步骤 4:重启 Samba 服务并验证状态
修改配置文件后,需重启 Samba 服务使配置生效,并检查服务是否正常运行。
1. 重启 Samba 服务
Samba 的核心服务为smbd(文件共享)和nmbd(名称解析),执行以下命令重启服务:
bash
sudo systemctl restart smbd nmbd
2. 检查服务运行状态
执行命令查看smbd服务状态,确保服务处于 “active (running)” 状态:
bash
sudo systemctl status smbd
3. 设置 Samba 服务开机自启
为避免 Ubuntu 重启后 Samba 服务失效,执行以下命令设置开机自启:
bash
sudo systemctl enable smbd nmbd
输出Created symlink /etc/systemd/system/multi-user.target.wants/smbd.service → /lib/systemd/system/smbd.service.表示设置成功。
六、步骤 5:Windows 端测试 Samba 共享访问
配置完成后,在 Windows 设备上测试是否能正常访问 Ubuntu 的共享目录,操作如下:
1. 获取 Ubuntu 的 IP 地址
首先在 Ubuntu 终端中执行以下命令,获取 Ubuntu 的局域网 IP(如192.168.1.100):
bash
ip addr show # 查看所有网络接口的IP,通常在"eth0"或"wlan0"下的"inet"字段
或简化命令:
bash
hostname -I # 直接输出局域网IP
2. Windows 端访问共享目录
方法 1:通过 “文件资源管理器” 访问
方法 2:映射为本地磁盘(便捷访问)
若需频繁访问共享目录,可将其映射为 Windows 的 “网络磁盘”(如 Z 盘):
七、进阶:Samba 配置文件关键参数解析
Samba 的/etc/samba/smb.conf文件分为 “全局配置([global])” 和 “共享配置(如 [shared])” 两部分,以下是常用参数的说明,便于后续优化配置:
1. 全局配置([global]):控制 Samba 整体行为
ini
[global] workgroup = WORKGROUP # Windows工作组名称(需与Windows的工作组一致,默认Windows为WORKGROUP) security = user # 认证模式:user(需输入Samba用户名密码)、share(匿名访问,不推荐) guest account = nobody # 匿名用户的系统账号(security=share时生效) log file = /var/log/samba/log.%m # 日志文件路径,%m表示客户端主机名 max log size = 50 # 单个日志文件最大大小(单位:KB),超过后自动切割 server string = Ubuntu Samba Server # Samba服务器的备注信息(Windows端可见)
2. 常用共享配置模板
除了自定义的[shared]共享,smb.conf中还有两个默认共享模板,可按需启用:
(1)用户家目录共享([homes])
允许 Samba 用户访问自己的 Ubuntu 家目录(如/home/user):
ini
[homes] comment = Home Directories # 备注:用户家目录 browseable = no # 不在网络中显示(仅用户自己可见) writable = yes # 允许读写家目录文件 valid users = %S # %S表示当前登录的Samba用户(仅允许访问自己的家目录)
(2)打印机共享([printers])
若需共享 Ubuntu 连接的打印机,可启用该配置:
ini
[printers] comment = Printers # 备注:打印机共享 path = /var/spool/samba # 打印机临时文件路径 browseable = no # 不在网络中显示打印机列表 guest ok = no # 不允许匿名访问 writable = no # 不允许修改打印机配置 printable = yes # 启用打印功能
八、常见问题与解决方案
1. Windows 端访问时提示 “拒绝访问”
2. Windows 端无法找到 Ubuntu 的共享目录
3. Samba 服务启动失败
九、总结
通过以上步骤,可在 Ubuntu 系统中快速搭建 Samba 服务,实现与 Windows 的跨平台文件共享。核心注意事项:
Samba 不仅支持文件共享,还可扩展打印机共享、跨平台权限同步等功能,适合家庭、企业场景下的 Linux 与 Windows 协同工作。



