<suffix>无效的DN 21(语法无效)openldap </suffix>

时间:2013-07-22 02:28:23

标签: openldap

实际上基于http://www.openldap.org/doc/admin24/slapdconf2.html说我可以将slapd.conf转换为cn = config格式。

为此,我尝试在服务器上创建slapd.conf文件,该文件具有像bellow一样的角色提供程序:

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”

如何解决此错误?

3 个答案:

答案 0 :(得分:10)

你现在可能已经解决了,但为了谷歌的利益......

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

说明:在core.schema文件中(通常在/ etc / openldap / schemas /中,至少对于RedHat / CentOS RPMs),你可以找到它(还有更多需要的东西):

# 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 )

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

include         /etc/openldap/schema/core.schema

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

答案 1 :(得分: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

根据this,您可能只会丢失pidfile位置,因为它在版本之间发生了变化,但最终还是会添加其余的。

答案 2 :(得分: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