smbclient NT_STATUS_ACCESS_DENIED

smbclient NT_STATUS_ACCESS_DENIED

大约每 10 年一次,当我迁移到新主机时,我需要与 SAMBA 搏斗,然后我压抑创伤记忆,直到我下次必须重新学习它:S 因此这个新问题。

我有一个 Ubuntu 虚拟机,有几个共享 - 一个 ("Public") 是不安全的,另一个 ("Public2") 是安全的,目的是它应该是只能由 Ubuntu 框中定义的经过身份验证的用户帐户访问。这两个共享都出现在 XP 和 Win8.1 的 Windows 资源管理器中。但是,我一辈子都弄不明白如何登录到安全的 Public2 共享。

将 Windows 客户端排除在外,我尝试使用 smbclient 简单地循环回到盒子,它产生以下输出,表明它无法进行身份验证:

michael@ubuntu:~$ smbclient //ubuntu/Public2 --user=michael%mypasswd
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]
tree connect failed: NT_STATUS_ACCESS_DENIED

与此同时,不安全的共享 可访问的。 我错过了什么(可能非常明显)的事情?我没有正确指定用户名吗?

/var/lib/samba/usershares/public (unsecure, works) contains:


#VERSION 2
path=/home/michael/Public
comment=
usershare_acl=S-1-1-0:F
guest_ok=y
sharename=Public

/var/lib/samba/usershares/public2(我无法访问)包含:

#VERSION 2
path=/home/michael/Public2
comment=
usershare_acl=S-1-1-0:F
guest_ok=n
sharename=Public2

警告:这是指 Samba 2。我们现在在 Samba 4。注意您使用的是哪个版本的 Samba。如我的评论所述,GUI 会破坏您的配置。

一位同事为我指出了正确的方向:

用于访问 Linux 共享的 Linux 用户 ID 需要为其定义第二个“samba”密码。最简单的方法是安装并 运行 GUI Samba 服务器配置应用程序,默认情况下未安装该应用程序。

Samba 文档 确实 解释了这一点,但它隐藏在大量解释 samba.conf 配置等所有神秘方面的文档中。

以下文章直击主题:

http://ubuntuhandbook.org/index.php/2014/05/ubuntu1404-file-sharing-samba/

对于使用命令行选项的用户,请使用

$ sudo smbpasswd -a <user_name>

这将提示您指定密码。

您必须编辑“/etc/samba/smb.conf” 使用 sudo nano /etc/samba/smb.conf 编辑 conf 文件。 其中工作组 = [您的域]

没有'second samba password'。有 linux 密码:/etc/passwd 然后是 Samba 密码,它是 smbpasswd 或 passdb.tdb。哪一个以及它位于何处取决于 smb.conf 中的 Samba 版本和设置。 BOTH 必须设置。在 /etc/passwd 和 Samba(以上之一)中,两者都表示 Linux。在大多数情况下,这是此错误消息的问题。或者尝试重启lanman服务,还是Windows.
但我想评论另一个可能更罕见的案例。

如果您使用的是定制的 Samba,并且仅在这种情况下,则此错误可能还有其他(扩展)原因。
Samba 可能会通过额外的权限检查进行编译,这将说“否”(return false),之后 Samba 将宣布错误,与此 Q 提到的相同。
检查日志中是否有错误。如果是这种情况,或许会有线索。

同样,这是针对自定义构建 Samba 的。

特别是在我的情况下,在 QNAP NAS 上,Samba 将调用一个二进制文件 /sbin/appriv -C -u 502 -S1

   -C, --check                     Check user privilege.
   -S, --samba [bit]               The privilege of Samba
   -u, --uid [uid]                 UID.

apppriv 是“apppriv -> nasutil”,它是 QNAP 自己的二进制文件,不是 linux 或 GNU 的一部分。

由于 Samba 中内置了如此多的选项,我找不到进行此额外检查的理由。
尤其是当它只需要一个普通的空文件就可以满足时 returning "true".
只是一个并发症,可能的问题来源,没有安全进步。

我一直在从 QNAP 更新旧的废弃系统。用另一个更新的 NAS 替换了 Samba。
这就是我解决这个问题并浪费大量时间的方式。谢谢威联通