如何将现有的 LDAP 用户映射到不同 LDAP 服务器中的用户?

如何将现有的 LDAP 用户映射到不同 LDAP 服务器中的用户?

我们设置了一些 Linux 机器以使用我们公司的 LDAP 服务器进行身份验证。后来我们被另一家公司收购,他们希望我们使用他们的 LDAP 服务器并淘汰旧服务器。但用户名不一样了 - 旧名称现在是 ID。“asmith”现在可能由“AS31328”表示,而“asmith”没有出现在记录中的任何地方。

有没有办法可以配置机器以允许现有用户名,但将它们映射到新 LDAP 服务器中的正确用户 ID?新用户必须使用他们的 ID 而不是旧名称,但现有用户仍然可以使用 asmith/密码,并且映射“asmith <-> AS31328”将指向 LDAP 中的 AS31328 用户。

或者,我可以重命名现有帐户,以便今后您必须使用 AS31328 而不是 asmith 登录,但您的现有文件和权限将保留?

答案1

您确实应该重命名您的帐户以符合新公司的命名约定(无论它是什么)。您可以随心所欲地重命名 unix 系统上的帐户,只要 UID 和 GID数字不要改变(名称是一个方便的标签 - 数字ID是用于所有内部检查的)。

理想情况下,您应该迁移到使用新公司的 LDAP 目录,并添加适当的RFC 2307该目录中的对象属性,以便您的 unix 系统可以对其进行身份验证。


在迁移和重命名方面,pam_ldap默认使用符合 RFC 2307 的uid属性来确定用户的登录名。
只要 UID 属性(以及其他相关详细信息,如uidNumber和 )与gidNumber旧系统的配置相匹配,您就可以切换到新的 LDAP 服务器,而不会产生明显的影响。

如果uid属性在新环境中有所不同,并且无法更改,则可以扩展 LDAP 模式以包含其他属性(如cn),匹配旧的登录名并pam_ldap通过配置指令配置使用该属性pam_login_attribute

如果您选择这种方式,那么整个合并后的公司必须统一 Unix 帐户的属性和命名方案。如果混合环境有些机器使用uid,有些机器使用cn,还有一些机器使用unixUserName或其他自定义属性,那么这只会带来麻烦。

相关内容