【问题标题】:smbclient NT_STATUS_ACCESS_DENIEDsmbclient NT_STATUS_ACCESS_DENIED
【发布时间】:2015-02-28 14:56:13
【问题描述】:

大约每 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

【问题讨论】:

  • 我得到了与 OP 标题相同的错误,但是由于完全不同的问题:我试图进入的目录名称(使用 cd 命令)不正确(由于空格在目录名称中)。当我使用引号时,它起作用了。我写在这里是因为它可能与其他用户因同样的原因最终出现在这篇文章中有关。

标签: authentication ubuntu samba


【解决方案1】:

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

$ sudo smbpasswd -a <user_name>

这将提示您分配密码。

【讨论】:

    【解决方案2】:

    警告:这是指 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/

    【讨论】:

    • 很好的答案。我遇到了与每隔几年必须重新学习 samba 内容的 OP 相同的问题。有了这个基本答案是使用 Samba 服务器配置,然后重新启动 smbd 和 nmbd。在我的例子中,端口转发端口 445 到 Mac 客户端。
    • 请勿安装 GUI SAMBA 服务器配置应用程序。它只支持 Samba 2,我们现在是 @Samba 4。它会破坏你的所有配置。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      如果您使用的是定制的 Samba,并且仅在这种情况下,此错误可能还有另一个(扩展的)原因。
      Samba 可能会通过额外的权限检查进行编译,这将显示“NO”(返回 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.
      

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

      在 Samba 中构建了这么多选项,我找不到进行此额外检查的理由。
      尤其是当它可以只满足一个返回“true”的普通空文件时。
      只是一个并发症,可能的问题根源,没有安全改进。

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

      【讨论】:

      • 对编辑发表评论:当然我明白原因,但我的案例是最前沿的案例,因此在 SO 上没有特定的位置。这不是“正确”的答案,也不是故意的。这是针对特定目标群体的答案。我预计大多数阅读本文的人会不同意我的回答,本着这种精神,我添加了结尾,“希望这对某人有所帮助”,现在已删除。
      猜你喜欢
      • 1970-01-01
      • 2013-09-21
      • 2013-11-17
      • 2014-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多