我们有大约 70% 的 Linux 用户,所有这些用户都配置为通过 LDAP 针对 Active Directory 进行身份验证。为了实现这一点,我们在 Windows Server 2003 下使用了“Windows Services for Unix”,一切运行正常。
我们现在处于这样一个阶段:运行该装置的服务器有点疲惫了,将会被一台运行 Windows Server 2008(其中用户名映射和密码更改等相关服务与操作系统集成)的新机器所取代。
问题就在这里:如果通过 Win2k3 服务器配置新用户,那么一切都会正常。如果通过 Win2k8 服务器完成同样的事情,那么:
- 2k3 服务器上的 ADS 插件无法识别它,并且行为就像从未设置过 UNIX 属性一样。
- 用户无法使用 LDAP 对 ADS 进行身份验证。
有人遇到过这个问题吗?如果遇到过,您是如何克服的?
如果您需要任何其他信息来提供进一步的帮助,请直接询问,我会提供。
答案1
LDAP 名称映射在 Win2K3 和 2K8 之间发生了变化。新的映射(应用于 /etc/ldap.conf)是:
nss_map_attribute uid sAMAccountName
nss_map_attribute uidNumber uidNumber
nss_map_attribute gidNumber gidNumber
nss_map_attribute cn sAMAccountName
nss_map_attribute uniqueMember member
nss_map_attribute userPassword msSFUPassword
nss_map_attribute homeDirectory unixHomeDirectory
nss_map_attribute loginShell loginShell
nss_map_attribute gecos cn
nss_map_objectclass posixGroup Group
nss_map_attribute shadowLastChange pwdLastSet
如果有帮助,请告诉我。您可能还必须迁移旧用户——我会使用 ldapsearch 并比较新旧用户(但如果我没记错的话,我认为他们只会同时具有这两种属性)
答案2
我决定在这里发布另一个答案,因为这通常是人们找到他们正在寻找的信息的地方。
虽然以上内容仍然非常有效和真实,但我现在找到了一种通过 AD 连接客户端的更简单的方法。Debian squeeze(最新稳定版本)包含 sssd(源自 redhat/fedora 环境的软件包),这使所有这一切变得轻而易举。安装后,它会查找并建议域控制器,我只需要更改配置文件中的很少内容即可使其为我工作。它与 Windows Server 2008 配合得很好,并且还可以缓存密码(对于笔记本电脑用户来说很重要)。