Ubuntu 部署 Samba 文件共享服务完整指南:安装、配置与 Windows 访问(含常见问题排查)

阅读提示:本文以 Ubuntu 22.04 为例,共享目录名统一使用 sambashare。文中所有 <username> 均表示占位信息,实际部署时请替换为你的 Ubuntu 系统账户名。部署时务必保证以下三处保持一致:smb.conf 配置中的 valid users、执行 smbpasswd -a 添加的账户,以及共享目录的属主。三者不一致时,Windows 访问共享往往会提示“没有权限”或无法登录。

一、Samba 是什么

Samba 是一个在 Linux 和 Unix 系统上实现 SMB/CIFS 协议的开源软件,能够在局域网内让 Ubuntu、Windows、macOS 等不同操作系统互相共享文件和打印机。本文的目标是:在 Ubuntu 上部署一个共享目录,并从同一局域网内的 Windows 电脑访问该目录。

二、安装 Samba

先更新软件源,这一步可以根据网络环境省略:

sudo apt update

安装 Samba:

sudo apt install samba

安装完成后,可以通过以下命令检查 Samba 是否安装成功:

whereis samba

如果命令返回类似如下路径,说明安装成功:

samba: /usr/sbin/samba /usr/lib/samba /etc/samba /usr/share/samba /usr/share/man/man7/samba.7.gz /usr/share/man/man8/samba.8.gz

三、创建共享目录并设置权限

创建需要共享的目录,这里示例目录为 /home/<username>/sambashare

sudo mkdir -p /home/<username>/sambashare

将目录属主改为你的 Ubuntu 系统账户:

sudo chown <username>:<username> /home/<username>/sambashare

设置目录权限,便于局域网访问时正常读写:

sudo chmod 0777 /home/<username>/sambashare

说明:共享目录的属主如果不是你配置的 Samba 账户,即使创建了目录也可能出现无法访问的情况。所以在配置之前先把属主和权限设置正确,可以避免大多数后续权限错误。

四、配置 Samba 共享

Samba 的配置文件位于 /etc/samba/smb.conf。使用以下任一命令进行编辑:

sudo nano /etc/samba/smb.conf

也可以使用 vim:

sudo vim /etc/samba/smb.conf

在配置文件底部追加以下内容,把 pathvalid users 改成你的实际路径和账户名:

[sambashare]
   comment = Samba on Ubuntu
   path = /home/<username>/sambashare
   read only = no
   browsable = yes
   available = yes
   guest ok = no
   writable = yes
   valid users = <username>
   create mask = 0777
   directory mask = 0777

保存配置文件后,重启 Samba 服务使配置生效:

sudo service smbd restart

五、设置 Samba 账户密码

Samba 不使用 Linux 系统账户的登录密码,需要为该账户单独设置 Samba 密码。这个密码也是 Windows 端访问共享时输入的密码:

sudo smbpasswd -a <username>

执行后按提示输入两次密码,输出类似如下内容:

New SMB password:
Retype new SMB password:
Added user <username>.

注意:这里的账户名必须属于 Ubuntu 系统账户,且要和上一步配置文件中的 valid users 保持一致。如果对应不上,Windows 访问时会提示账号或密码错误。

Samba 配置中 valid users 与系统账户对应关系说明

六、配置防火墙

Ubuntu 开启了 UFW 防火墙时,需要放行 Samba 流量:

sudo ufw allow samba

如果未开启防火墙,可以跳过这一步。

七、获取服务器 IP 并在 Windows 上访问

在 Ubuntu 终端执行以下任一命令查看本机 IP:

ifconfig

如果系统没有安装 ifconfig,可以使用:

ip addr

在输出中找到类似 inet 192.168.16.91 的地址,这就是后续在 Windows 中要访问的服务器 IP。

ifconfig 查看本地 IP 输出示例

ifconfig 输出结果示例

进入同一局域网内的 Windows 电脑,按 Win + R 打开运行窗口,输入共享地址并回车:

\\192.168.16.91\sambashare

把 IP 地址替换为你的 Ubuntu 服务器 IP,把 sambashare 替换为你配置文件中的共享名。随后输入刚刚用 smbpasswd 设置的账户名和密码,即可访问共享目录。

Windows 访问 Samba 共享目录

Windows 输入 Samba 账户密码访问共享

八、常见问题排查

8.1 Ubuntu 22.04 安装 Samba 时出现依赖冲突

在部分 Ubuntu 22.04 环境中执行 sudo apt install samba 时,可能因版本库中 samba-libslibwbclient0 等包的版本高于 Samba 所需版本而安装失败。错误信息通常包含类似以下内容:

samba : 依赖: samba-common-bin (= 2:4.15.13+dfsg-0ubuntu1.5) 但是它将不会被安装
        依赖: libwbclient0 (= 2:4.15.13+dfsg-0ubuntu1.5) 但是 2:4.15.13+dfsg-0ubuntu1.6 正要被安装
        依赖: samba-libs (= 2:4.15.13+dfsg-0ubuntu1.5) 但是 2:4.15.13+dfsg-0ubuntu1.6 正要被安装

解决办法是把相关依赖降级到 Samba 所需的版本,再重新安装。先更新软件源:

sudo apt update

执行降级:

sudo apt install --allow-downgrades samba-libs=2:4.15.13+dfsg-0ubuntu1.5 libwbclient0=2:4.15.13+dfsg-0ubuntu1.5

然后再次安装 Samba:

sudo apt install samba

一般完成后即可解决问题。

8.2 共享目录无法访问:目录属主或权限不正确

如果 Samba 服务已启动、账号密码也正确,但 Windows 仍然无法访问共享目录,可以回到 Ubuntu 检查目录的属主和权限。

查看共享目录信息:

ls -ld /home/share

如果返回类似下面的结果,说明目录属主还是 root,并且没有任何用户权限:

d--------- 2 root root 4096  2月 13 19:24 /home/share

此时需要把目录属主改为你的系统账户,并设置可读写权限:

sudo chown <username>:<username> /home/share
sudo chmod 0777 /home/share

修改后再执行 ls -ld /home/share,如果显示类似 drwxrwxrwx、属主为你的账户名,即可回到 Windows 重新访问。

8.3 Windows 11 提示安全策略阻止来宾访问

在部分 Windows 11 系统上访问共享时会提示:

“你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问。这些策略可帮助保护你的电脑免受网络上不安全设备或恶意设备的威胁。”

Windows 11 安全策略阻止来宾访问报错

解决办法如下:

  1. Win + R,输入 gpedit.msc,回车打开组策略编辑器。
  2. 依次展开:计算机配置 - 管理模块 - 网络 - Lanman 工作站
  3. 双击“启用不安全的来宾登录”,将其设置为“已启用”。

组策略中 Lanman 工作站启用不安全的来宾登录

配置完成后再次尝试访问共享目录:

Windows 11 重新访问共享成功

8.4 Windows 提示不允许一个用户使用多个用户名连接

如果在 Windows 上访问共享时出现“不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接”,通常是因为 Windows 中残留了旧的网络连接凭据。解决办法如下:

  1. 在 Windows 中按 Win + R,输入 cmd 并回车,打开命令提示符。
  2. 输入 net use,查看当前已建立的网络连接,找到指向目标服务器 IP 的记录。
  3. 执行 net use * /delete 清除全部缓存连接;如果只想删除某一条,可以执行 net use \\192.168.16.162\jfubuntu /delete
  4. 再次执行 net use,确认连接列表已清空。
  5. 重新访问共享地址,系统会弹出登录窗口,输入新账户和密码即可。
  6. 如果仍然失败,可以重启 Windows 电脑,以彻底清除系统缓存后再试。

九、参考文档

详细官方教程可参考:Install and Configure Samba | Ubuntu

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

orange....

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值