从本地 Samba 共享中删除文件是否会导致客户端连接出现问题?

从本地 Samba 共享中删除文件是否会导致客户端连接出现问题?

我在使用基于 rpi4 的 samba 共享时遇到了问题。当我通过 SSH 连接到服务器并在本地删除文件时,与我唯一的客户端的连接似乎变得不太可靠。客户端尝试放在服务器上的文件会消失,或者文件一旦放在服务器上就会为空。如果我不通过 SSH 连接到服务器并删除任何内容,一切似乎都正常工作。客户端是一种工业设备,它使用一种基于文件的请求/响应系统进行通信。您将请求文件放在共享中,然后它会将响应文件放在您可以读取的共享中。我对客户端唯一知道的是它必须使用 smb1,因为我必须在 smb.conf 文件中启用 ntlm 身份验证。这是我在 smb.conf 中的内容

[全局] 工作组 = 工作组 ntlm 身份验证 = 是

服务器角色 = 独立服务器

[E63Session] 注释 = E63Session 路径 = /home/pi/E63Session 可浏览 = 是 只读 = 否 创建掩码 = 0777 目录掩码 = 0777

我尝试启用和禁用 smb.conf 文件中的许多设置,但没有任何效果。如果尝试在启用了 smb1 功能的 Windows 10 上执行相同操作,则不会出现任何问题。仅在 rpi4 上。提前感谢您的任何意见。

答案1

这听起来很像客户端假设它是访问文件夹的唯一设备,并且没有其他设备可以访问/修改任何内容。
它可能在启动时读取共享上的目录一次,然后继续使用它,而不进行任何错误检查或重新读取以查看是否有任何变化。只要您从文件夹中删除文件,目录内容就会发生变化,但客户端不知道这会导致错误、重试和文件/文件夹损坏。
(如果您还没有这样做,请在文件系统上运行 fsck...您的文件系统也可能已损坏。)

这听起来确实是一件愚蠢的事情,但这种事情并非闻所未闻,尤其是在旧工业系统上。
在许多情况下,这些系统最初设计为使用内部磁盘(其他人无法访问),后来添加了网络功能,但其文件处理的基本单用户逻辑从未现代化以支持多用户访问。

没有真正的办法可以解决这个问题。为了安全起见,当工业系统也在使用该共享及其内容时,您不能对其进行任何操作。

相关内容