Linux OpenLDAP错误:条目-1没有dn Slaptest赢得';行不通

Linux OpenLDAP错误:条目-1没有dn Slaptest赢得';行不通,linux,centos6,openldap,centos6.5,Linux,Centos6,Openldap,Centos6.5,我正在尝试在centOS 6.6上配置OPENLDAP,我已经通过yum安装程序安装了它,并下载了OPENLDAP服务器OPENLDAP客户端OPENLDAP的2.4.39-8版本 我在学校里学习了教程 我通过输入slappasswd添加了一个密码,它返回了一个olcRootPW:{SSHA},我在/etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif下添加了这个密码 我也改变了主意 olcsuffix:dc=mydomain,dc=co

我正在尝试在centOS 6.6上配置OPENLDAP,我已经通过yum安装程序安装了它,并下载了OPENLDAP服务器OPENLDAP客户端OPENLDAP的2.4.39-8版本

我在学校里学习了教程

我通过输入slappasswd添加了一个密码,它返回了一个olcRootPW:{SSHA},我在/etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif下添加了这个密码

我也改变了主意 olcsuffix:dc=mydomain,dc=com到olcsuffix:dc=mycompanyname,dc=com

olcRootDN:cn=Manager,dc=mydomain,dc=com到olcRootDN:cn=Manager,dc=mycompanyname,dc=com

我运行ldaptest-u来测试连接,但它给了我以下错误: 5577050f ldif读取文件:“/etc/openldap/slapd.d/cn=config.ldif”上的校验和错误 5577050f str2条目:条目-1没有dn slaptest:错误的配置文件

我用谷歌搜索了上面的错误,但运气不好

Below are my cn=config.ldif and my olcDatabase={2}bdb.ldif

/etc/openldap/slapd.d/cn=cconfig.ldif

# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 3db96e4e
dn: cn=config
objectClass: olcGlobal
cn: config
olcConfigFile: /usr/share/openldap-servers/slapd.conf.obsolete
olcConfigDir: /etc/openldap/slapd.d
olcAllows: bind_v2
olcArgsFile: /var/run/openldap/slapd.args
olcAttributeOptions: lang-
olcAuthzPolicy: none
olcConcurrency: 0
olcConnMaxPending: 100
olcConnMaxPendingAuth: 1000
olcGentleHUP: FALSE
olcIdleTimeout: 0
olcIndexSubstrIfMaxLen: 4
olcIndexSubstrIfMinLen: 2
olcIndexSubstrAnyLen: 4
olcIndexSubstrAnyStep: 2
olcIndexIntLen: 4
olcListenerThreads: 1
olcLocalSSF: 71
olcLogLevel: 0
olcPidFile: /var/run/openldap/slapd.pid
olcReadOnly: FALSE
olcReverseLookup: FALSE
olcSaslSecProps: noplain,noanonymous
olcSockbufMaxIncoming: 262143
olcSockbufMaxIncomingAuth: 16777215
olcThreads: 16
olcTLSCACertificatePath: /etc/openldap/certs
olcTLSCertificateFile: "OpenLDAP Server"
olcTLSCertificateKeyFile: /etc/openldap/certs/password
olcTLSVerifyClient: never
olcTLSProtocolMin: 0.0
olcToolThreads: 1
olcWriteTimeout: 0
structuralObjectClass: olcGlobal
entryUUID: 9b0553c8-9ffb-1034-96cd-7ddcc9b7a61f
creatorsName: cn=config
createTimestamp: 20150605182245Z
entryCSN: 20150605182245.037496Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20150605182245Z

and my /etc/openldap/slapd/cn=config/olcDatabase={2}bdb.ldif

# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 b7acf931
dn: olcDatabase={2}bdb
objectClass: olcDatabaseConfig
objectClass: olcBdbConfig
olcDatabase: {2}bdb
olcSuffix: dc=mycompany,dc=com
olcAddContentAcl: FALSE
olcLastMod: TRUE
olcMaxDerefDepth: 15
olcReadOnly: FALSE
olcRootDN: cn=Manager,dc=mycompany,dc=com
olcRootPW: {SSHA}XIThNMsDcLUdHPBsVQcr6P6Qn8lDr+9B
olcSyncUseSubentry: FALSE
olcMonitoring: TRUE
olcDbDirectory: /var/lib/ldap
olcDbCacheSize: 1000
olcDbCheckpoint: 1024 15
olcDbNoSync: FALSE
olcDbDirtyRead: FALSE
olcDbIDLcacheSize: 0
olcDbIndex: objectClass pres,eq
olcDbIndex: cn pres,eq,sub
olcDbIndex: uid pres,eq,sub
olcDbIndex: uidNumber pres,eq
olcDbIndex: gidNumber pres,eq
olcDbIndex: ou pres,eq,sub
olcDbIndex: mail pres,eq,sub
olcDbIndex: sn pres,eq,sub
olcDbIndex: givenName pres,eq,sub
olcDbIndex: memberUid pres,eq,sub
olcDbIndex: loginShell pres,eq
olcDbIndex: nisMapName pres,eq,sub
olcDbIndex: nisMapEntry pres,eq,sub
olcDbLinearIndex: FALSE
olcDbMode: 0600
olcDbSearchStack: 16
olcDbShmKey: 0
olcDbCacheFree: 1
olcDbDNcacheSize: 0
structuralObjectClass: olcBdbConfig
entryUUID: 9b06a840-9ffb-1034-96de-7ddcc9b7a61f
creatorsName: cn=config
createTimestamp: 20150605182245Z
entryCSN: 20150605182245.037496Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20150605182245Z
olcAccess: {0}to attrs=userPassword by self write by dn.base="cn=Manager,dc=mycompany,dc=com" write by anonymous auth by * none
olcAccess: {1}to * by dn.base="cn=Manager,dc=mycompany,dc=com" write by self write by * read 

如果您发现以下说明要求您手动修改以开头的文件:

# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
考虑到你可能正在寻找一条不太理想的路径


CentOS 6上的默认openldap安装包括以下ACL,在
slapd.d/cn=config/olcDatabase={0}config.ldif
中定义:

olcAccess: {0}to *  by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,
  cn=auth" manage  by * none
olcAddContentAcl: TRUE
dn: olcDatabase={2}bdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=mycompanyname,dc=com
-
replace: olcRootDN
olcRootDN: cn=manager,dc=mycompanyname,dc=com
-
replace: olcRootPW
olcRootPW: {SSHA}ZvsONlpgNnLlAqKDRQBFup/W+0/LXm5q
dn: dc=mycompanyname,dc=com
objectclass: dcObject
objectclass: organization
dc: mycompanyname
o: my company name
这允许您使用外部身份验证访问
cn=config
,而不使用UID 0(“root”)密码。这看起来像:

ldapsearch -Y EXTERNAL -H ldapi:/// -b "cn=config"
通过这种访问,您可以完成几乎所有需要做的事情,包括修改目录树的后缀和根dn。将以下内容放入
access.ldif

olcAccess: {0}to *  by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,
  cn=auth" manage  by * none
olcAddContentAcl: TRUE
dn: olcDatabase={2}bdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=mycompanyname,dc=com
-
replace: olcRootDN
olcRootDN: cn=manager,dc=mycompanyname,dc=com
-
replace: olcRootPW
olcRootPW: {SSHA}ZvsONlpgNnLlAqKDRQBFup/W+0/LXm5q
dn: dc=mycompanyname,dc=com
objectclass: dcObject
objectclass: organization
dc: mycompanyname
o: my company name
然后使用该选项修改配置:

# ldapmodify -Y EXTERNAL -H ldapi:/// -f access.ldif
现在您已经修改了目录后缀和密码,可以将以下内容放入
toplevel.ldif

olcAccess: {0}to *  by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,
  cn=auth" manage  by * none
olcAddContentAcl: TRUE
dn: olcDatabase={2}bdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=mycompanyname,dc=com
-
replace: olcRootDN
olcRootDN: cn=manager,dc=mycompanyname,dc=com
-
replace: olcRootPW
olcRootPW: {SSHA}ZvsONlpgNnLlAqKDRQBFup/W+0/LXm5q
dn: dc=mycompanyname,dc=com
objectclass: dcObject
objectclass: organization
dc: mycompanyname
o: my company name
然后加上:

# ldapadd -D cn=manager,dc=mycompanyname,dc=com -w admin -f toplevel.ldif
adding new entry "dc=mycompanyname,dc=com"
现在您可以搜索它:

# ldapsearch -x -b dc=mycompanyname,dc=com
# extended LDIF
#
# LDAPv3
# base <dc=mycompanyname,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# mycompanyname.com
dn: dc=mycompanyname,dc=com
objectClass: dcObject
objectClass: organization
dc: mycompanyname
o: my company name

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
#ldapsearch-x-bdc=mycompanyname,dc=com
#扩展LDIF
#
#LDAPv3
#带作用域子树的基
#筛选器:(objectclass=*)
#请求:全部
#
#mycompanyname.com
dn:dc=mycompanyname,dc=com
对象类:dcObject
对象类:组织
dc:mycompanyname
o:我的公司名
#搜索结果
搜索:2
结果:0成功
#numResponses:2
#货币:1

请求帮助的评论并不能真正让你成功。你发布了一个问题,这一简单的事实就足以表明你正在寻求帮助。不要依赖任意的网络垃圾。单是这个网站的名字就应该引起怀疑。有很多权威的OpenLDAP指南,从它本身开始,还有一个很好的指南。嗨,Larsk,谢谢你的回答,我已经尝试了你上面的解决方案,问题是我似乎无法让LDAP工作,其中一个配置文件似乎已经搞乱了。因此,当我试图通过键入来启动ldap服务时。“service slapd start.”它给我的错误与“578456d strentry:entry-1没有dn”slaptest:bad配置文件相同!我不确定什么条目-1没有dn意味着什么,我检查了config.ldif文件,dn在那里。我怀疑您的配置文件中有错误。我只需重新安装所有原始配置文件(例如,
rm-rf/etc/openldap
yum重新安装openldap服务器
)。