Ubuntu 从 16.04 升级到 18.04 后,Samba 共享列表在 Mac 中不可见

Ubuntu 从 16.04 升级到 18.04 后,Samba 共享列表在 Mac 中不可见

在 Ubuntu 16.04 上,Samba 运行良好。可以查看共享列表,并能够从我的各种工作站和操作系统访问它们。升级到 18.04 后,现在当我从 Mac 连接到 Ubuntu 服务器时,我只能看到我的主文件夹,而看不到其他共享。我只尝试在 Mac 上查看,所以也许其他操作系统也能看到它们。不过,仍然需要在我的 Mac 上解决这个问题。如果我在 Finder 中单击“前往”,我可以输入我想访问的服务器名称和共享,并能够浏览该共享,这样它们就存在并且可以访问。

有趣的是,我没有在/etc/samba/smb.conf文件中配置主文件夹,因为我没有使用或保存主文件夹中的任何内容。

我试过使用 googlefu,但对我不起作用,所以没有找到任何与此问题相关的内容。我不知道我的主文件夹的配置来自哪里,也不知道为什么我的smb.conf文件中没有任何内容可见。

如何恢复升级到 18.04 之前的 Samba 功能?哪些变化会导致版本之间出现这种情况?

添加了所需信息:

name@host:/etc/samba$ testparm -s
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[Data]"
Loaded services file OK.
Server role: ROLE_STANDALONE

# Global parameters
[global]
    dns proxy = No
    log file = /var/log/samba/log.%m
    max log size = 1000
    panic action = /usr/share/samba/panic-action %d
    security = USER
    server string = %h server (Samba, Mythbuntu)
    workgroup = MSHOME
    idmap config * : backend = tdb


[Data]
    comment = Data Share
    create mask = 0644
    path = /share/data
    read only = No
name@host:/etc/samba$


name@host:/etc/samba$net usershare info --long
name@host:/etc/samba$

Nothing is output from that command. Tried with sudo, no difference.

user@host:/etc/samba$ cat smb.conf
[global]
workgroup = MSHOME
server string = %h server (Samba, Mythbuntu)
log file = /var/log/samba/log.%m
max log size = 1000
# syslog = 0
panic action = /usr/share/samba/panic-action %d
dns proxy = no
security = user

[Data]
comment = Data Share
path = /share/data
browseable = yes
public = no
writable = yes
create mask = 0644
directory mask = 0755
user@host:/etc/samba$ 

更新:我将计算机重新启动到 Windows 10,能够像往常一样访问我的共享,使用与升级服务器之前相同的密码。重新启动回 Mac 后,我意识到我使用了不同的密码来访问服务器。用户名相同,但密码不同。我尝试使用与 Windows 中相同的密码,但它在 Mac 上不起作用。Mac 运行的是 High Sierra,并安装了该操作系统的最新版本。

需要澄清的是,我使用的 Samba 密码与登录 Ubuntu 的密码不同。适用于 Windows 的旧密码是 Samba 密码。升级之前,此密码在 Mac 上运行良好。现在,无论我如何格式化用户名,Mac 都不会接受此密码。它接受我在帐户上使用的密码。希望这能说明可能发生的事情。顺便说一句,Windows 10 不接受我帐户上的密码,只接受 Samba 密码。

更新 2:我删除了 testparm 的原始输出,将 smb.file 的内容更改为具有我愿意共享的真实路径的真实共享。此更改对我的 Mac 显示的内容没有影响,我可以直接访问它。登录后查看我的 Ubuntu 服务器时,我看不到它,所有共享都显示在那里。我仍然看到我的主文件夹,它不在我的 smb.conf 文件中。Mac 的行为就像它正在访问与 Windows 不同的配置,因为我的密码不同,显示的共享列表也不同。Windows 根本不显示我的主文件夹,我只在 Mac 上看到它。我注意到的另一件事是我认为是新的,因为在升级之前我没有注意到这个选项,Mac 现在向我显示了一个单独的服务器项目,让我可以通过 VNC 轻松查看我的主 x 会话。

更新 3:仍在尝试弄清楚为什么 Mac 不像以前那样列出网络共享。我以为这是 Samba 的问题。尝试在 Mac 上运行 smbutil,它能够列出所有可用的 samba 共享,并且列表与 smb.conf 文件中的内容相匹配。然后我停止了 Ubuntu 服务器上的 samba 服务。我仍然可以通过 Finder 登录,并且 Finder 仍然显示并允许我连接到我的“主目录”。我无法找到有关在 Ubuntu 中提供此服务的任何信息,但它不是 Samba。广告可能是 Bonjour,但我没有找到有关如何配置它的任何信息。这可能是 Mac 特有的,我找不到有关如何完成此操作的文档。

答案1

对于 Mac 我不确定,但对于 Windows 10 客户端,问题在于缺乏对 WSD (WS-Discovery) 协议的支持。有一个关于此的错误报告:https://bugs.launchpad.net/ubuntu/+source/samba/+bug/1831441 好消息是,您已经可以使用以下内容实施解决方案,如上述文档中所述。我在我的 ubntu 18.04 服务器上实施了该解决方案,效果非常好:

[1]下载文件:

wget https://github.com/christgau/wsdd/archive/master.zip

[2] 解压后重命名python脚本:

sudo mv wsdd-master/src/wsdd.py wsdd-master/src/wsdd

[3] 复制到/usr/bin

sudo cp wsdd-master/src/wsdd /usr/bin

[4] 软件包中已经提供了 systemd 服务文件,只需将其复制到正确的位置即可:

sudo cp wsdd-master/etc/systemd/wsdd.service /etc/systemd/system

[5] 必须编辑 wsdd.service 文件以删除对 nobody 用户的引用:

#User=nobody
#Group=nobody

[6]然后启用服务:

sudo systemctl daemon-reload
sudo systemctl start wsdd
sudo systemctl enable wsdd

答案2

发现问题了。发布此帖是为了帮助其他人,以后可能会发生这种情况。希望这对您有所帮助。

搜索服务器上正在运行的进程(sudo systemctl --state=active),发现 Netatalk 正在运行。它提供了“主目录”共享。当我关闭 Netatalk 时,它就消失了,我仍然能够使用 Finder 中的链接远程访问我的桌面。当我重新连接到服务器时,我的正常共享列表出现了。它一定是在升级之前运行的,但直到更新到最新版本后才开始工作。或者它是作为升级的一部分安装的,我不知道是哪种情况。

相关内容