![使用 Samba 访问无密码用户的 Windows 共享](https://linux22.com/image/1047527/%E4%BD%BF%E7%94%A8%20Samba%20%E8%AE%BF%E9%97%AE%E6%97%A0%E5%AF%86%E7%A0%81%E7%94%A8%E6%88%B7%E7%9A%84%20Windows%20%E5%85%B1%E4%BA%AB.png)
我有一台运行 Windows 7 的笔记本电脑。上面只配置了一个帐户,并且没有密码。
我尝试从运行 Ubuntu 14.04 的 PC 访问其共享,该 PC 配置为位于同一工作组并连接到同一本地网络。
Nautilus 和 smbclient 都无法访问它。例如
$ smbclient //<server>/<share> -U <user>
Enter <user>'s password:
Anonymous login successful
Domain=[WORKGROUP] OS=[Windows 7 Ultimate 7601 Service Pack 1] Server=[Windows 7 Ultimate 6.1]
tree connect failed: NT_STATUS_ACCESS_DENIED
(当要求输入密码时我只需按 Enter 键)。
具有讽刺意味的是,当 Windows 笔记本电脑上的帐户配置有密码,并且输入正确的密码时,连接就可以正常工作。
理论上,它应该在两种情况下都有效:如果没有密码,并且没有输入密码,则没有理由拒绝访问。那么,为什么它不起作用?Samba 是否将“空密码”视为特殊情况?
答案1
您需要修改 Windows 配置才能执行此操作。从堆栈溢出:
转到控制面板>网络和共享中心>更改高级共享设置>启用关闭密码保护共享选项
一旦您改变了这个选项,一切都会正常。
请注意,这实际上剥夺了您可以采取的任何保护措施,以防止攻击者修改您的共享文件。我建议实际设置一个密码,并在 fstab 中添加一个保存了密码的自动挂载条目。
答案2
经过多次折磨和重复折磨后,我找到了部分解决方案。我做了以下事情:
apt-get install samba-client
apt-get install cifs-utils
然后我发出了以下命令:
sudo mount.cifs //192.168.0.2/f$ /mnt/f -o user=administrator
它提示我输入密码,我只需按下回车键就可以了,而不需要输入密码,按下回车键后,共享就被挂载了。
这不是一个完整的解决方案,但至少现在我可以访问共享。
不幸的是,nautilus 等仍然无法提供支持,因为它们使用了其他机制来访问共享。
您将无法仅通过键入smb://192.168.0.2/f$
或任何方式来访问您的共享,因为您将陷入登录循环,因为文件管理器仍然无法处理无密码共享。
但至少通过这种方式,您可以将无密码共享挂载到文件夹并通过文件管理器访问该文件夹。
每次要访问无密码共享时,除非您编辑某些配置或进行其他操作,否则您都必须执行此操作。如果您在朋友家中尝试访问共享,这仍然会很不方便,但此时有总比没有好。
无论如何,只需修改命令以满足您的需要,例如更改 IP/共享、您想要安装的位置以及具有共享的帐户的用户名。
sudo mount.cifs //192.168.0.2/f$ /mnt/f -o user=administrator
这是我见过和知道的正确访问无密码管理共享的唯一方法,并且我相信它可以与常规无密码共享一起使用。
如果有人知道如何让文件浏览器工作,smb://
我仍然想知道,但我无法弄清楚,而且看起来其他人也不知道。