ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

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

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安装 Sambasudo 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/sambasharesudo 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也可以使用 vimsudo vim /etc/samba/smb.conf在配置文件底部追加以下内容把path和valid 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 访问时会提示账号或密码错误。六、配置防火墙Ubuntu 开启了 UFW 防火墙时需要放行 Samba 流量sudo ufw allow samba如果未开启防火墙可以跳过这一步。七、获取服务器 IP 并在 Windows 上访问在 Ubuntu 终端执行以下任一命令查看本机 IPifconfig如果系统没有安装ifconfig可以使用ip addr在输出中找到类似inet 192.168.16.91的地址这就是后续在 Windows 中要访问的服务器 IP。进入同一局域网内的 Windows 电脑按Win R打开运行窗口输入共享地址并回车\\192.168.16.91\sambashare把 IP 地址替换为你的 Ubuntu 服务器 IP把sambashare替换为你配置文件中的共享名。随后输入刚刚用smbpasswd设置的账户名和密码即可访问共享目录。八、常见问题排查8.1 Ubuntu 22.04 安装 Samba 时出现依赖冲突在部分 Ubuntu 22.04 环境中执行sudo apt install samba时可能因版本库中samba-libs、libwbclient0等包的版本高于 Samba 所需版本而安装失败。错误信息通常包含类似以下内容samba : 依赖: samba-common-bin ( 2:4.15.13dfsg-0ubuntu1.5) 但是它将不会被安装 依赖: libwbclient0 ( 2:4.15.13dfsg-0ubuntu1.5) 但是 2:4.15.13dfsg-0ubuntu1.6 正要被安装 依赖: samba-libs ( 2:4.15.13dfsg-0ubuntu1.5) 但是 2:4.15.13dfsg-0ubuntu1.6 正要被安装解决办法是把相关依赖降级到 Samba 所需的版本再重新安装。先更新软件源sudo apt update执行降级sudo apt install --allow-downgrades samba-libs2:4.15.13dfsg-0ubuntu1.5 libwbclient02:4.15.13dfsg-0ubuntu1.5然后再次安装 Sambasudo 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 系统上访问共享时会提示“你不能访问此共享文件夹因为你组织的安全策略阻止未经身份验证的来宾访问。这些策略可帮助保护你的电脑免受网络上不安全设备或恶意设备的威胁。”解决办法如下按Win R输入gpedit.msc回车打开组策略编辑器。依次展开计算机配置-管理模块-网络-Lanman 工作站。双击“启用不安全的来宾登录”将其设置为“已启用”。配置完成后再次尝试访问共享目录8.4 Windows 提示不允许一个用户使用多个用户名连接如果在 Windows 上访问共享时出现“不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接”通常是因为 Windows 中残留了旧的网络连接凭据。解决办法如下在 Windows 中按Win R输入cmd并回车打开命令提示符。输入net use查看当前已建立的网络连接找到指向目标服务器 IP 的记录。执行net use * /delete清除全部缓存连接如果只想删除某一条可以执行net use \\192.168.16.162\jfubuntu /delete。再次执行net use确认连接列表已清空。重新访问共享地址系统会弹出登录窗口输入新账户和密码即可。如果仍然失败可以重启 Windows 电脑以彻底清除系统缓存后再试。九、参考文档详细官方教程可参考Install and Configure Samba | Ubuntu
返回列表