转换 slapd.conf OpenLdap 时出现无效 DN 21(语法无效)

转换 slapd.conf OpenLdap 时出现无效 DN 21(语法无效)

实际上我想使用 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

相关内容