【问题标题】:Windows 10 unable to connect to Ubuntu 20.04.3 Samba Server (0x80004005 Unspecified Error)Windows 10 无法连接到 Ubuntu 20.04.3 Samba 服务器(0x80004005 未指定错误)
【发布时间】:2022-01-31 02:47:55
【问题描述】:

我的目标:我的 windows 10 客户端可以使用访客帐户(无需密码)访问、查看和执行 Ubuntu 服务器共享的 .exe 文件。

预期结果:当我在文件资源管理器中键入 \ubuntu-server-hostname\bakro 时,我可以看到并执行 .exe 文件

实际结果:Windows 无法访问 \ubuntu-server-hostname\bakro 错误代码:0x80004005 未指定错误

其他观察

  1. 当我在 Windows 10 客户端上运行 net use \\ubuntu-server-hostname\bakro 时,结果为 System error 53 has occurred. The network path was not found.
  2. 我可以使用 smbclient 从 ubuntu 服务器访问共享文件。
    当我运行 smbclient -L \\\\ubuntu-server-hostname 时,我可以看到那里列出了 bakro。
    当我运行smbclient \\\\ubuntu-server-hostname\\bakro 进入smb 命令行并输入ls 以列出共享内的文件时,我可以看到.exe 文件。
    在这两种情况下,我都被要求提供我当前的用户帐户密码。我按回车键(空白密码)作为回应。
    我使用systemctl status smbd 检查了日志,结果是多行session closed for user samba-guest。时间似乎与我通过 smbclient 访问共享的时间一致。
  3. ubuntu 服务器也在运行 OpenVPN 服务器。 OpenVPN 服务器使用 10.8.0.0/24 子网并分配 10.8.0.1 ip 地址。如果我使用同一台 Windows 10 计算机连接到 OpenVPN 服务器,然后通过在文件资源管理器中键入 \\10.8.0.1 来访问 samba 共享,我可以看到列出的文件夹 bakro。我可以浏览文件夹并执行 .exe 文件(这是我想要的和预期的结果)。此访问尝试使用systemctl status smbd 记录在 samba 日志中。

我做了什么:

  • 根据观察 #1,我将主机名替换为服务器公共 IP 地址。通过net use 和文件资源管理器访问它会产生相同的结果。两次尝试都没有记录在通过systemctl status smbd 获得的 samba 日志中。
  • 根据观察#1 和#2,我使用ufw status 检查了Ubuntu 服务器防火墙。 Samba 被列为允许通过 ipv4 和 ipv6。我还检查了服务器的安全组。端口 445 TCP 被列为允许。
    我已尝试禁用 ufw 并设置安全组以允许从任何地方连接到所有端口,但我仍然无法访问共享。
  • 根据观察#3,我使用ip link show 获得了网络接口列表。得到3个接口:lo(环回)、eth0(互联网)、tun0(OpenVPN)。我在 smb.conf 中添加了interfaces = lo eth0。结果:我无法从\\ubuntu-server-hostname\bakro\\10.8.0.1\bakro 访问共享。
  • 我尝试将guest 帐户从samba-guest 更改为nobody。除了日志现在显示 session closed for user nobody 之外没有任何变化。
  • 我尝试将client min protocol = SMB2client max protocol = SMB3 添加到smb.conf source
  • 在 Windows 10 客户端的高级共享设置中更改了文件共享连接以启用 40 位和 56 位加密。

小观察:

  • 我发誓我在第一次设置 samba 服务时使用同一台 Windows 10 计算机测试了文件共享功能(但我的记忆充其量是不可靠的)
  • 我还尝试通过其他 2 台 Windows 7 计算机上的文件资源管理器访问 \ubuntu-server-hostname\bakro,结果相同。

以下是我的smb.conf的内容:

# Global parameters
[global]
        disable netbios = Yes
        guest account = samba-guest
        interfaces = 0.0.0.0/0
        log file = /var/log/samba/log.%m
        logging = file
        map to guest = Bad User
        max log size = 1000
        obey pam restrictions = Yes
        pam password change = Yes
        panic action = /usr/share/samba/panic-action %d
        passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
        passwd program = /usr/bin/passwd %u
        security = USER
        server role = standalone server
        server string = ubuntu-samba-server
        unix password sync = Yes
        usershare allow guests = Yes
        idmap config * : backend = tdb


[printers]
        browseable = No
        comment = All Printers
        create mask = 0700
        path = /var/spool/samba
        printable = Yes


[print$]
        comment = Printer Drivers
        path = /var/lib/samba/printers


[bakro]
        guest ok = Yes
        path = /srv/files/bakro

【问题讨论】:

  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。
  • 你搞定了吗?看来我有一个非常相似的问题

标签: windows ubuntu samba


【解决方案1】:

一切都在慢慢改变。我已经使用了超过 15 年的非常简单的 smb.conf,但突然之间无法以访客身份连接到共享。如果我配置了 home-dir 共享,就可以了,但是访客的免费共享被拒绝了。我花了一些时间才发现在共享定义中必须指定:valid users = nobody,如您在示例中所见:

[data]
path          = /srv/data
valid users   = nobody
force user    = nobody
read list     = nobody
write list    = nobody
guest account = nobody
guest only    = yes
guest ok      = yes

我无法解释它为什么以及如何起作用。只知道,它依赖于 samba 版本(现在:4.11.5-Debian)。 linux 端的 dir /srv/data 应该有 nobody:nogroup 和至少 666 的文件和 777 的 dirs。因此create mask = 666directioy mask = 777 可能很有用。这样你应该更正全局设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    • 2018-09-27
    • 1970-01-01
    • 2015-01-23
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    相关资源
    最近更新 更多