![如何将现有的 LDAP 用户映射到不同 LDAP 服务器中的用户?](https://linux22.com/image/612524/%E5%A6%82%E4%BD%95%E5%B0%86%E7%8E%B0%E6%9C%89%E7%9A%84%20LDAP%20%E7%94%A8%E6%88%B7%E6%98%A0%E5%B0%84%E5%88%B0%E4%B8%8D%E5%90%8C%20LDAP%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%AD%E7%9A%84%E7%94%A8%E6%88%B7%EF%BC%9F.png)
我们设置了一些 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
或其他自定义属性,那么这只会带来麻烦。