在 OpenLDAP 中重命名基本 DN

在 OpenLDAP 中重命名基本 DN

我目前有一个 LDAP 目录(OpenLDAP),它对在多个服务器上运行的一系列服务进行身份验证。

假设基本 DN 是 dc=oldcompany,dc=com。

我现在想将其更改为 dc=newcompany,dc=com,并尽量减少依赖它的服务的停机时间。

是否有某种方法可以设置“别名”或其他内容,以便我在重新配置所有内容时我的服务可以通过旧 DN 和新 DN 访问目录?

我还应该考虑其他什么替代方案?有没有其他好的文档可以帮助其他人进行这样的重命名?我的 Google-foo 找不到任何东西。

答案1

这种操作没有得到很好的支持。

如果是我做的话,我会建立一个更改窗口,使用对所有内容进行完全导出slapcat(输出将在 LDIF 中),使用 sed 重新设置数据(类似于sed -i 's/dc=oldcompany,dc=com/dc=newcompany,dc=com/g' backupfile),将数据导入到新的 LDAP 服务器,然后用新的 LDAP 服务器替换旧的 LDAP 服务器。

LDAP 中实际上没有与 DNS 的 DNAME 记录等效的记录。从概念上讲,可以使用引用来执行此操作,但我没有在标准中看到这种用法(RFC3296),我不确定在 DN 下同时拥有数据和引荐的结果是否明确。此外,即使这样做可行,您最终仍会进行切换并且测试能力极低,因此您不应这样做,而应按上述方式切换。

答案2

我使用 sed 命令时收到一个奇怪的错误“(line=1):(64)单值命名属性‘dc’的值与条目中存在的值冲突”

sed -i 's/dc=oldcompany,dc=com/dc=newcompany,dc=com/g' backupfile

当我切换到特定的东西时,它修复了导致那个奇怪错误的格式问题。

sed -i -e "s|dc=$backup_dc,dc=com|dc=$current_dc,dc=com|g" -e "s|^dc: $backup_dc|dc: $current_dc|g" -e "s|^o: $backup_dc|o: $current_dc|g" backup.ldif

相关内容