![转换 slapd.conf OpenLdap 时出现无效 DN 21(语法无效)](https://linux22.com/image/803173/%E8%BD%AC%E6%8D%A2%20slapd.conf%20OpenLdap%20%E6%97%B6%E5%87%BA%E7%8E%B0%E6%97%A0%E6%95%88%20DN%2021%EF%BC%88%E8%AF%AD%E6%B3%95%E6%97%A0%E6%95%88%EF%BC%89.png)
实际上我想使用 syncrepl 方法将 ldap 配置为主从复制,根据我找到的任何参考资料,我都在 Centos 6 机器和 openldap v2.4.23 上运行。我一步一步地http://admin.shamot.cz/?p=230#sthash.cKuGZQAu.dpbs 它使用来自 slapd.conf 的配置。
但最近在 openldap 2.4 及以上版本中,slapd配置文件已更改为 cn=config。
基于http://www.openldap.org/doc/admin24/slapdconf2.html说我可以将 slapd.conf 转换为 cn=config 格式。
因此我尝试将我的 slapd.conf 转换为 cn=config。
因此,出于这个目的,我尝试在具有如下角色提供程序的服务器上创建 slapd.conf 文件:
database bdb
suffix dc=mydomain,dc=org
rootdn cn=admin,dc=mydomain,dc=org
directory /var/lib/ldap/db
index objectclass,entryCSN,entryUUID eq
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100
database config
rootpw mypassword
然后我尝试使用 slaptest 命令转换该文件,但收到如下错误消息:
$ slaptest -f slapd.conf -v
slapd.conf: line 2: <suffix> invalid DN 21 (Invalid syntax)
slaptest: bad configuration file
其实我的后缀是完全正确的,但为什么总是“无效的 DN”如何解决这个错误?
答案1
我遇到了同样的问题,文件太少了,我添加了一些额外的细节,然后就好了
#slapd.conf
#schemas to use
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
#log
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
########################################
##### dbm database definitions ####
########################################
database bdb
suffix dc=server,dc=com
rootdn cn=Manager,dc=server,dc=com
rootpw secret
#database directory
directory /var/lib/ldap
#end
根据这您可能只会缺少 pidfile 位置,因为它在版本之间发生了变化,但无论如何您最终都会添加其余部分。
答案2
您可能需要在 DN 周围添加引号。请尝试suffix "dc=mydomain,dc=org"
,并在下一行中也添加 DN 引号。
答案3
您需要添加
include /etc/ldap/schema/core.schema
在文件顶部。
可能还需要您想要的数据库后端的数据库模块
moduleload back_bdb