我和我的网络管理员被一些 Windows 身份验证的怪异现象弄得焦头烂额——我们俩都对 Linux 有更多的了解,因此对于以下任何我的无知,我提前表示歉意。
我们在 Windows Server 2008 R2 上配置了文件共享,允许匿名访问。我们不是我们的网络上有一个 Windows 域控制器,因此这些共享可供网络上的任何计算机使用。
我在这个服务器上有一个用于 RDP 登录的帐户,并且该帐户具有对共享的写权限。
在其他服务器上,我使用相同的用户名(本地配置,因为我们没有域控制器)。尝试从此服务器连接到共享时,系统提示我提供登录名,尽管共享应该无需登录即可读取。
更令人困惑的是,第二台服务器上还有另一个账户除了用户名之外,配置与我的完全相同能够顺利连接。
我所看到的我的用户帐户与其他用户帐户之间行为的实质性差异是,当我尝试连接到共享时(从开始菜单,输入\\servername\
),在我的帐户中,我没有在列表中看到可用的共享“自动完成”,而在其他名称不同的相同帐户中,它们却可以。当我手动输入共享的全名并尝试连接时,系统会显示一个身份验证对话框:输入网络密码(连接到 [服务器名称]),密码字段下方列出本地计算机的“域”。
更让我困惑和沮丧的是,我们在不同的服务器上有两个这样的共享(分别称为 A 和 B)——我无法连接到 B,而无法连接到 A。然后,在删除我的服务器 B 帐户对 B 共享的读/写访问权限后(这样只剩下“每个人都可以读”),我可以成功连接到 B,但 A 却停止工作了。
编辑,更多信息:
在使用共享配置时,我们曾被提示打开“网络发现”,但似乎这不仅仅会影响共享。我们不想将它们“通告”给所有 Windows 客户端系统,只想在请求时让它们可访问。毕竟,网络上的任何常规旧系统都无需任何凭据即可访问它,因此我认为这不会产生有利(如果有的话)的影响。
有人见过这样的事情吗?我能想到的最好的情况是,如果我们有一个域服务器,情况会简单得多,这与在每个服务器上拥有同名的用户帐户有关,这些帐户位于该服务器自己的域下。我的同事有相同类型的帐户,但没有这个问题,所以我只能假设我在文件共享服务器上缺少一些权限/安全配置。
答案1
以本地用户身份运行时,Windows 将始终尝试使用登录的用户名和密码对远程共享进行身份验证 - 因此,如果您的本地用户名和本地密码在系统之间匹配,您将自动通过身份验证。
在这种情况下,这似乎会导致问题,因为您的系统尝试使用登录的用户和密码进行身份验证,但凭证失败。我不太清楚为什么这会导致它无法返回到匿名登录,但匹配的本地用户名几乎肯定是导致这种奇怪现象的原因。
是的,如果您使用 Active Directory,这种情况会简单得多。