如何使用 Samba 列出 Windows 机器上的共享?(错误 NT_STATUS_ACCESS_DENIED)

如何使用 Samba 列出 Windows 机器上的共享?(错误 NT_STATUS_ACCESS_DENIED)

我想通过使用 Samba 从我的 Linux 机器上浏览来查找我妻子的 Windows 机器上的 Windows XP“共享”。我对 Windows 和 Samba 都不太了解。我尝试从命令行执行基本操作,但出现此错误:

: nr@homedog 8088 ; smbclient -L sapphire
timeout connecting to 140.247.184.252:445
timeout connecting to 140.247.184.252:139
Connection to sapphire failed (Error NT_STATUS_ACCESS_DENIED)

我用 Google 搜索了此错误消息,发现很多人都遇到过类似的问题,但我找不到解决方法。我怀疑我的妻子必须在 Windows 端授予某种访问权限或许可。有什么建议吗?

答案1

好吧,问题出在 Sambasmb.conf配置文件上。我妻子的机器的 NetBIOS 名称恰好与我在 中搜索到的网络上某台机器的主机名一致/etc/resolv.conf。出于某种原因,Samba 请求和 Nautilus 都指向这台机器,而不是本地网络上的机器。

我通过告诉/etc/resolv.conf不要搜索有问题的域来修复该问题。此时smbclient -L开始工作,Nautilus 的远程挂载也开始工作。

答案2

目前,访问 Windows 7 共享存在问题:他们更改了协议中的某些内容,Linux Samba 不再兼容。我猜他们已经发布了针对 XP 的补丁,这也使其不兼容:这是为了让 Win7 共享可供 XP 访问,反之亦然。

这些只是基于逻辑结论的猜测。如果可能的话,请尝试在虚拟机上运行过时的 XP 并列出其共享:如果这有效,那我就是对的 :)

另外,我读到 Samba 开发人员目前正在与 M$ 就新协议进行协商,很快我们就会看到一个使 Samba 再次兼容的补丁。

PS 了解如何点击“接受此解决方案”勾选,否则你将永远不会得到任何答案。

干杯!:)

答案3

了解更多信息的最简单方法是:

  1. 提出像你曾经做过的那样的问题
  2. 阅读您正在运行的命令的手册页。

阅读 smbclient 手册页时,您将看到可以同时提供用户名和密码。这可以通过以下方式完成:smbclient -L hostname -U username

然后系统将提示您输入密码。

正如 Tync 所说,m$ 可能引入了一些影响 Windows 和 samba 之间兼容性的补丁。

希望这可以帮助,

马特

相关内容