没有从 OpenLDAP 返回根 DSE

8 openldap ldap

我正在尝试在使用 slapd 2.4.18 版的 ubuntu 9.10 上设置 OpenLDAP 服务器。

初始化并填充新的 hdb 数据库后,一切似乎都正常,但我无法让服务器返回根 DSE。跑步

ldapsearch -x -W -D 'cn=manager,dc=example,dc=org' \
    -b '' -s base '(objectclass=*)' +
Run Code Online (Sandbox Code Playgroud)

刚回来

# extended LDIF
#
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: +
#

# search result
search: 2
result: 0 Success

# numResponses: 1
Run Code Online (Sandbox Code Playgroud)

我的 hdb 数据库 ACL 设置如下:

olcAccess: to attrs=userPassword,shadowLastChange
  by self write
  by anonymous auth
  by dn.base="cn=manager,dc=example,dc=org" write
  by * none
olcAccess: to dn.base=""
  by * read
olcAccess: to *
  by self write
  by dn.base="cn=manager,dc=example,dc=org" write
  by * read
Run Code Online (Sandbox Code Playgroud)

根据我的经验,这个设置应该返回一个有效的根 DSE,所以如果有人能给我一个关于发生了什么的线索......

小智 4

这实际上是针对 Ubuntu 9.10(业力)的 bug #427842

要解决此问题,请将以下内容复制到 fixRootDSE.ldif:

dn: olcDatabase={-1}frontend,cn=config
changetype: modify
add: olcAccess
olcAccess: to dn.base="" by * read
olcAccess: to dn.base="cn=subschema" by * read
Run Code Online (Sandbox Code Playgroud)

并执行

sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f fixRootDSE.ldif
Run Code Online (Sandbox Code Playgroud)

这应该可以匿名访问根 DSE。