诊断 Linux Samba 不遵守 Windows 文件打开请求的问题

诊断 Linux Samba 不遵守 Windows 文件打开请求的问题

我们有 Windows 2003 域服务器管理/服务一个小型(10 台机器)网络。用户主要在 Windows 上工作。我们在同一个网络上有一个 Linux Web 服务器,其中激活了 Samba NFS,并且有多个来自域的用户被明确指定为 Samba 的有效访问者。Linux 机器还充当内部网络的 DNS 服务器。

直到最近,那些 Windows 用户才能够查看 Linux 系统 [浏览、打开/编辑/关闭文件等](因此无需直接登录 Linux 系统即可管理网站)。

突然,这不再起作用;尝试访问 Linux 系统时会弹出登录窗口,但在域(和 Linux)系统上输入有效的用户 ID 时总是会出现“无法访问文件”的情况。

如果我们能帮忙的话,我们不会去修改 Web 服务器配置,而且实际上也没有必要。我们也尽量不去弄乱 Windows 域服务器。虽然我们是系统管理方面的熟练业余爱好者,但显然我们不是专家,我们无法猜测是什么变化导致了这种情况。我们唯一知道的是最近更改了上游 DNS 服务器;似乎我们很长时间以来都使用错误的 DNS 服务器地址,而那个错误的 DNS 服务器最终变得无法访问。我们将其更改为 ISP 的 DNS,一切似乎都很好。我们不能肯定地说,在发生这种切换的那一刻,Samba 文件系统就变得无法访问,因为我们每隔几天才进行一次系统管理。

有什么想法或去哪里看?

编辑:事实证明,让 Linux 系统加入 Windows 域就可以解决问题。令人费解的是,在我们似乎没有这样做的情况下,一切都正常运转了大约 2 年(我们可能这样做了,然后忘记了,但为什么加入域会消失,我不明白)。好吧,问题解决了,但不清楚问题到底是什么。

感谢那些考虑过这个问题的人。

答案1

如果故障在您进行 DNS 切换时开始出现,那么这是我要检查的第一件事。

但是,您并不清楚自己更改了哪些 DNS 设置:在您的 samba/web 服务器上?在您的 Windows 客户端上?在您的 Windows 服务器上?

Samba 可以(取决于您的配置)依靠 DNS 连接到身份验证 Windows 服务器(如果它只是进行 NT4 样式的连接),或者进行 Kerberos 连接(如果它使用 AD 连接进行连接)。因此,如果您更改了 Samba 服务器上 /etc/resolv.conf 中的 DNS 设置,并且现在它根本无法解析 Windows 服务器,那么这是一种可能的解释

首先:检查您的 samba 日志文件。通常在 /var/log/samba/ 或类似目录中,但它非常依赖于发行版和管理员。

如果这没有给你任何清晰的提示(例如有关“无法解析主机名”或类似内容的错误),请检查 smb.conf 文件以查看“安全”设置是什么,然后从那里找出是否存在 DNS 解析问题。如果它给出与登录尝试相关的其他错误

如果您的安全设置是“服务器”或“域”,则它将执行 NT4 样式的身份验证,如果您的安全设置是“ADS”,则它将执行基于 kerberos 的 AD 身份验证。

对于 NT4 样式的身份验证,smb.conf 中通常会设置一个“密码服务器”变量 - 如果此变量无法解析,则您无法登录。对于 ADS 身份验证,您必须确保您的 /etc/krb5.conf 文件正确,并且其中提到的主机也能正确解析。

我不会重复所有关于在这些情况下设置 samba 的现有文档,但是这里有一些看起来很有用的文档的链接:

相关内容