![从 Windows 10 访问 Linux Samba 共享](https://linux22.com/image/1631664/%E4%BB%8E%20Windows%2010%20%E8%AE%BF%E9%97%AE%20Linux%20Samba%20%E5%85%B1%E4%BA%AB.png)
我在 Ubuntu 20.04 上为 Linux 目录创建了一个 Samba 共享,并在 UFW 中设置了必要的端口访问,即 137/udp、138/udp、139/tcp 和 445/tcp。当我尝试使用文件管理器在 Windows 10 上添加网络位置时,在该过程结束时,它提示我输入用户名和密码。我已将共享配置为不使用密码,因此我认为它需要密码才能连接到 Linux 机器。我认为我对应该输入什么密码感到困惑,并输入了错误的密码。最终结果是我无法从 Windows 10 连接到此共享,并且我找不到更改密码的方法。有什么想法我可以做什么吗?
答案1
我已将共享配置为不使用密码
Samba 实际上不支持每个共享密码。此安全模型曾是在 Windows 98 时代使用,但在 2012 年从 Samba 中完全删除。 (同时,Windows NT/2000/XP 系列从来没有每个共享密码,它们始终是基于帐户的。)
所有 SMB 安全现在基于账户(就像在 SSH 和其他协议中一样)——您提供用户名和密码登录 SMB 服务器,然后根据您的用户帐户授予对共享的访问权限。
所以我相信它需要密码才能连接到 Linux 机器
那几乎是对的。
默认情况下,Samba 确实使用与 Linux 本身相同的系统帐户。唯一的区别是密码是单独存储的——Samba 需要存储与 NTLM 兼容的密码哈希,因为它不能使用标准 Linux 哈希密码。
这意味着您必须先为您的 Linux 用户帐户设置一个“Samba 密码”才能连接 -smbpasswd
在 Linux 服务器上执行此操作:
sudo smbpasswd -a jonathan
(为了使文件权限正常工作,Samba 用户名始终需要与您的 Linux 用户名匹配,但密码可以不同。)
我已经在 UFW 中设置了必要的端口访问,即 137/udp、138/udp、139/tcp 和 445/tcp。
SMB 单独通过 445/tcp 运行。(除非您的客户端运行的是 Windows 95/98,它需要 139/tcp。)
端口 137/udp 用于 LAN 主机名解析 (NBNS),端口 138/udp 用于附近的计算机发现(“计算机浏览器”服务)——两者对于 SMB 来说都是完全可选的,事实上两者都是基于 NetBIOS 的服务,大多数 Windows 10 客户端在禁用 SMBv1 的同时都已禁用它们。