在 OpenLDAP 2.4 中,配置已移至名为 的 LDIF 后端cn=config
。OpenLDAP 文档称“您永远不应直接编辑任何 LDIF 文件。配置更改应通过 LDAP 操作执行...”,但没有提供任何进一步的详细信息。
存在许多相互矛盾的信息,更糟糕的是,诸如 Redhat Linux 和 Ubuntu 等发行版具有特定的配置。
答案1
编辑日期有两种方式cn=config
:直接和间接。间接使用常规 ldap 工具,例如 ldapmodify 和 ldapsearch,这提供了最简单和最合乎逻辑的方法。然而,许多发行版使用 SASL 来限制本地机器上的 root 用户访问。假设您有一个预先配置的实例,您可以轻松更改它:
启用对 cn=config 的外部访问
sudo -i
/su -
创建新密码:
slappasswd
- 复制结果,包括“{SSHA}”
准备
auth.ldif
。olcRootPW
用上一条命令中的密码哈希值替换dn: olcDatabase={0}config,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=admin,cn=config - replace: olcRootPW olcRootPW: {SSHA}jCMTRlz/iT4cw3CZno5z2PtCkJQbKrqK
导入 LDIF:
ldapmodify -Y EXTERNAL -H ldapi:/// -f auth.ldif
现在,您可以使用任何 LDAP 客户端进行外部连接(假设您有网络访问权限)。例如
ldapsearch -b cn=config -D cn=admin,cn=config -H ldap://myldapserver -W
- 尽快配置 SSL!
直接模式
在直接模式下,您可以编辑 cn=config 数据库(以及任何其他数据库),即使数据库slapd
已关闭。这是通过使用slapadd
和slapcat
工具来实现的。您必须传递数据库后缀。例如:
slapcat -b cn=config
在我看来,当您知道需要应用的确切 LDIF 时,最好使用直接模式。我很少这样做,所以我倾向于使用普通的 LDAP 工具来动态添加、替换和删除配置。