1

实际上基于http://www.openldap.org/doc/admin24/slapdconf2.html说我可以将 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”

如何解决这个错误?

4

3 回答 3

11

您现在可能已经解决了它,但是为了那里的谷歌的利益......

您的后缀并非绝对正确,因为它使用 domainComponent 属性“dc=”,但您尚未添加定义它的架构。因此,在完成之前,可分辨名称是未知且“无效的 DN”。

说明: 在 core.schema 文件中(通常在 /etc/openldap/schemas/ 中,至少对于 RedHat/CentOS RPM),您可以找到这个(以及更多需要的内容):

# RFC 1274 + RFC 2247
attributetype ( 0.9.2342.19200300.100.1.25
        NAME ( 'dc' 'domainComponent' )
        DESC 'RFC1274/2247: domain component'
        EQUALITY caseIgnoreIA5Match
        SUBSTR caseIgnoreIA5SubstringsMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )

通过将其添加到开头(假设文件位于此路径,根据需要进行调整),您必须执行此操作才能将此架构文件包含到您的配置中:

include         /etc/openldap/schema/core.schema

您可能还需要其他模式文件,但这将解决此错误。

于 2014-03-07T17:04:47.770 回答
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 位置,因为它在版本之间发生了变化,但您最终还是会添加其余部分。

于 2013-08-27T21:52:11.277 回答
0

好吧,您应该在运行测试之前删除默认文件:

CentOS 上的示例:

rm -rf /etc/openldap/slapd.d/*

在数据库目录中,应该有一个 DB_CONFIG 文件

所有具有 ldap-user-granted (chown ldap:ldap) 的档案

将此文件包含在#schemas 中以使用

include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/openldap.schema
include         /etc/openldap/schema/dyngroup.schema
于 2014-02-26T06:12:54.980 回答