在OpenLDAP 2.4中,configuration已经被移动到名为cn=config的LDIF后端。 OpenLDAP文档中提到:“你不应该直接编辑任何LDIF文件,应该通过LDAP操作来执行configuration更改…”,但是不会提供详细信息。
有很多矛盾的信息,更糟糕的是,发行版(如Redhat Linux和Ubuntu)有特定的configuration。
有两种方法直接或间接地编辑cn=configdate: 间接使用正常的ldap工具,如ldapmodify和ldapsearch,它提供了最简单和最合乎逻辑的方法。 然而,许多发行版都使用SASL来限制访问本地机器上的root用户 。 假设你有一个预configuration的实例,你可以很容易地改变这个:
启用对cn = config的外部访问
sudo -i / su - 创build一个新的密码:
slappasswd
准备auth.ldif 。 将olcRootPWreplace为上一个命令的密码哈希值
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客户端进行外部连接(假设您拥有networking访问权限)。 例如
ldapsearch -b cn=config -D cn=admin,cn=config -H ldap://myldapserver -W
直接模式
在直接模式下,即使slapdclosures,也可以编辑cn = config数据库(和任何其他数据库)。 这是通过使用slapadd和slapcat工具。 您必须传递数据库后缀。 例如:
slapcat -b cn=config
恕我直言,直接模式是最好的,当你知道你需要应用确切的LDIF。 我很less这样做,所以我倾向于使用普通的LDAP工具来即时添加,replace和删除configuration。