使用OpenLDAP 2.4 LDIFconfiguration后端

在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的外部访问

  1. sudo -i / su -
  2. 创build一个新的密码:

     slappasswd 
  3. 复制结果,包括“{SSHA}”
  4. 准备auth.ldif 。 将olcRootPWreplace为上一个命令的密码哈希值

     dn: olcDatabase={0}config,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=admin,cn=config - replace: olcRootPW olcRootPW: {SSHA}jCMTRlz/iT4cw3CZno5z2PtCkJQbKrqK 
  5. 导入LDIF:

     ldapmodify -Y EXTERNAL -H ldapi:/// -f auth.ldif 
  6. 您现在可以使用任何LDAP客户端进行外部连接(假设您拥有networking访问权限)。 例如

     ldapsearch -b cn=config -D cn=admin,cn=config -H ldap://myldapserver -W 
  7. 尽快configurationSSL!

直接模式

在直接模式下,即使slapdclosures,也可以编辑cn = config数据库(和任何其他数据库)。 这是通过使用slapaddslapcat工具。 您必须传递数据库后缀。 例如:

 slapcat -b cn=config 

恕我直言,直接模式是最好的,当你知道你需要应用确切的LDIF。 我很less这样做,所以我倾向于使用普通的LDAP工具来即时添加,replace和删除configuration。