当访问运行 Samba 的服务器时,Mac OS X 会打开一个登录窗口,提示输入用户名和密码。使用正确的用户名和密码,我可以登录和读/写共享。
使用 Windows XP 时,会打开一个类似的登录窗口,但用户名和密码似乎失败。输入两者后,我单击确定按钮,窗口闪烁并重新出现。当它重新出现时,用户名字段现在包含 SambaMachineName\username 和密码字段为空白。
我猜这是 Windows XP 访问 Samba 共享的一个常见问题,但是搜索一般窗口到 samba 问题并没有帮助。有人知道问题的原因吗?
通常,当您收到这种提示时,XP 框正在寻找针对某些东西进行身份验证并失败。这个网络有域吗?如果是这样,OS X 机器是该域的一部分吗?
您提供的登录名必须与域帐户或它所连接的计算机上存在的帐户相匹配,该计算机具有对该共享的权限。
例如,假设我有一个名为“MyDomain.local”的域和一个名为“MyServer”的服务器。如果您使用的帐户存在于域中,您必须输入这样的用户名:“MyDomain\Username”。如果该帐户不属于域并且仅存在于服务器上,那么它将是“MyServer\Username”。
基于 XP 框返回服务器名称的事实,我猜测该帐户在服务器上不存在。
您需要
encrypt passwords = true
在 smb.conf 的 global 部分进行设置,因为 windows 发送的密码是加密的有效用户名是域的一部分,还是托管该共享的计算机上的本地帐户?
Windows XP 对有效凭据的第二次请求意味着您输入的用户名和密码不正确,或者他们无权访问该共享。
您说 Windows 在域中,但 OSX 和 Samba 不在;我猜你也说你的 Samba 服务器是基于 Linux 的?让我们知道您在 smb.conf 中设置的密码选项;“安全=服务器”会是一个很好的猜测你正在运行什么?您的“工作组”行的价值是什么 - 与域相同?
如果上述情况属实,请检查您的 linux 服务器以查看“winbind”是否正在运行 - 如果是,请将其关闭,因为它正在尝试使用您的域。我有一个和你类似的设置,如果 winbind 正在运行,Windows XP 客人在访问这个非域 Red Hat samba 服务器时遇到问题,即使它上面有 security = server。(/etc/init.d/winbind 停止;chkconfig winbind 关闭)
您的 Samba 服务器是否配置为仅接受纯文本用户名/密码?默认情况下,Windows 会拒绝这样做,而 Mac OS X 和 Linux 可能不会。
在 Windows 7 正常时 XP 客户端无法连接也有同样的问题。我找到的解决方案是在 XP 机器上更改以下注册表项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\LMCompatibilityLevel
Windows XP:设置为:
3
Windows Vista 和 Windows 7:设置为:
1