我已经挣扎了好久,在 Google 上搜索了很多次,但还是没能解决这个(希望是)简单的问题。我是 ldap 的初学者,所以我可能忽略了一些非常明显的东西...我有一个非常简单的 slapd.conf:
include /private/etc/openldap/schema/core.schema
pidfile /private/var/db/openldap/run/slapd.pid
argsfile /private/var/db/openldap/run/slapd.args
database bdb
suffix "dc=ronr,dc=nl"
rootdn "cn=manager,dc=ronr,dc=nl"
rootpw zz
directory /private/var/db/openldap/openldap-data
index objectClass eq
以及 ldap.conf:
URI ldap://localhost
并启动 slapd。当尝试使用以下方式连接到 rootdn 时
ldapadd -x -D "cn=manager,dc=ronr,dc=nl" -w zz -f add_base.ldif -h localhost -d255
我收到:ldap_bind:无效凭据(49)
在 slapd 的调试级别 250 跟踪中我得到:
slapd startup: initiated.
backend_startup_one: starting "cn=config"
config_back_db_open
config_build_entry: "cn=config"
config_build_entry: "cn=schema"
config_build_entry: "cn={0}core"
config_build_entry: "olcDatabase={-1}frontend"
config_build_entry: "olcDatabase={0}config"
config_build_entry: "olcDatabase={1}bdb"
backend_startup_one: starting "dc=ronr,dc=nl"
bdb_db_open: database "dc=ronr,dc=nl": dbenv_open(/private/var/db/openldap/openldap-data).
bdb_monitor_db_open: monitoring disabled; configure monitor database to enable
slapd starting
slap_listener_activate(7):
>>> slap_listener(ldap:///)
connection_get(13): got connid=0
connection_read(13): checking for input on id=0
ber_get_next
ber_get_next: tag 0x30 len 38 contents:
ber_get_next
conn=0 op=0 do_bind
ber_scanf fmt ({imt) ber:
ber_scanf fmt (m}) ber:
>>> dnPrettyNormal: <cn=manager,dc=ronr,dc=nl>
<<< dnPrettyNormal: <cn=manager,dc=ronr,dc=nl>, <cn=manager,dc=ronr,dc=nl>
do_bind: version=3 dn="cn=manager,dc=ronr,dc=nl" method=128
bdb_dn2entry("cn=manager,dc=ronr,dc=nl")
=> bdb_dn2id("dc=ronr,dc=nl")
**<= bdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found (-30989)**
send_ldap_result: conn=0 op=0 p=3
send_ldap_response: msgid=1 tag=97 err=49
ber_flush2: 14 bytes to sd 13
connection_get(13): got connid=0
connection_read(13): checking for input on id=0
ber_get_next
ber_get_next on fd 13 failed errno=0 (Undefined error: 0)
connection_closing: readying conn=0 sd=13 for close
connection_close: conn=0 sd=13
我怀疑这条线
<= bdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found (-30989)
试图告诉我真正的问题。关键是我不知道这里缺少什么。我该如何解决这个问题?除了像我一样将密码放入 slapd.conf 中之外,我是否应该做一些额外的事情来管理密码?如果是,我应该怎么做?FWIW:我在 MacOSX (10.6.6) 上运行它
任何有用的提示/建议都非常感谢。罗纳德。
答案1
我在 Linux 上测试过,它运行正常,配置似乎相同。因此我决定从 ftp.nl.uu.net/pub/unix/db/openldap/openldap-release/… 安装 openldap,使用 ./config --prefix=/usr/local 这导致有关 Berkelydb 版本错误的错误。因此我下载了 download.oracle.com/berkeley-db/db-4.8.30.tar.gz,运行 configure --prefix=/usr/local,安装它,然后再次运行 configure for openldap,结果更顺利。安装后它立即运行正常,从此再无问题。虽然我不能说我知道问题出在哪里,但对我来说这就足够了。