openldap如何初始化数据结构?base.ldif和users.ldif
发布于 作者:苏南大叔 来源:程序如此灵动~
费劲力气安装好openldap软件后,然后使用各种ldap的管理软件(后续讨论)进行连接后。会发现什么数据也没有,也没有办法进行任何操作。这个事情就十分的怪异了,既然登陆成功了,为什么无法进行任何操作呢?这就是本文要试图解决的问题。

苏南大叔的“程序如此灵动”博客,记录苏南大叔的编程经验文章。测试环境:win10,openldap@2.4.32。龙套角色:phpldapadmin@1.2.6.7。
可能的症状
用各种ladp的客户端连接成功后,都可能会遇到类似的症状。就是:使用默认的Manager登陆成功后无法进行任何后续操作。
报错关键词是:"This base cannot be created with PLA"。如下图所示:

phpldapadmin就是个龙套角色,不必关心其细节。初始化数据
用于初始化的.ldif文件数据有两个,分别是:
\etc\ldif\base.ldif\etc\ldif\users.ldif
base.ldif描述了基本的组织结构。

users.ldif描述了一个注册用户,它的uid是uid=hacker,ou=People,dc=my-domain,dc=com,密码是OneTwo2012。(后续会用到)

初始化工具
实际上openldap默认情况下,启动后只有一个名为"dc=my-domain,dc=com"的根节点,也就是用于bind的dn。后续的组织结构和人员都是不存在的,这里需要使用bin/ldapadd.exe工具。
使用的方式是(请根据实际情况修改:cn=Manager,dc=my-domain,dc=com字样):
ldapadd.exe -v -x -D “cn=Manager,dc=my-domain,dc=com” -f ..\etc\ldif\base.ldif -Wldapadd.exe -v -x -D “cn=Manager,dc=my-domain,dc=com” -f ..\etc\ldif\users.ldif -W输入rootdn的密码secret,结构的初始化工作就完成了。

直接结果
执行结果很明显,各种客户端工具重新连接后,对应的根节点下,就有了可以操作的相关权限了。用phpldapadmin来做对比图。

相关文档
结语
openldap这款软件,是各种不走寻常路啊。更多ldap的经验文章,请点击苏南大叔的博客文章: