首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 ><suffix>无效DN 21 (无效语法) openldap

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

Stack Overflow用户
提问于 2013-07-22 10:28:23
回答 3查看 6.7K关注 0票数 1

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

因此,出于这个目的,我尝试在服务器上制作slapd.conf文件,该服务器具有如下角色提供程序:

代码语言:javascript
复制
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命令转换该文件,但得到如下错误消息:

代码语言:javascript
复制
$ slaptest -f slapd.conf -v
slapd.conf: line 2: <suffix> invalid DN 21 (Invalid syntax)
slaptest: bad configuration file

实际上我的后缀是绝对正确的,但是为什么总是“无效DN”?

如何解决这个错误?

EN

回答 3

Stack Overflow用户

发布于 2014-03-08 01:04:48

你现在可能已经解决了这个问题,但是为了谷歌的利益…

您的后缀并不是绝对正确的,因为它使用了domainComponent属性"dc=“,但是您还没有添加定义它的模式。因此,在此之前,可分辨名称是未知的和“无效的DN”。

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

代码语言:javascript
复制
# 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 )

要将此模式文件包含到您的配置中,必须执行的操作是将以下内容添加到开头(假设该文件位于此路径,请根据需要进行调整):

代码语言:javascript
复制
include         /etc/openldap/schema/core.schema

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

票数 11
EN

Stack Overflow用户

发布于 2013-08-28 05:52:11

我有同样的问题,文件太少,我添加了一些额外的细节,它工作

代码语言:javascript
复制
#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的位置,因为它在不同的版本之间发生了变化,但无论如何你最终都会添加剩下的位置。

票数 1
EN

Stack Overflow用户

发布于 2014-02-26 14:12:55

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

CentOS上的示例:

代码语言:javascript
复制
rm -rf /etc/openldap/slapd.d/*

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

所有具有ldap用户授权的档案(chown ldap:ldap)

将此文件包含在要使用的#schema中

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17779078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档