我正在尝试在 RHEL 框上设置独立的 OpenLDAP,但是在尝试将用户导入系统时遇到了一些麻烦。
如果我输入以下命令:
ldapadd -x -h localhost -D 'cn=Users,dc=internal,dc=priv' -W -f user.ldif
我收到以下回复:
Enter LDAP Password:
ldap_bind: Invalid credentials (49)
而在 ldap 服务器本身上,出现以下内容:
slap_listener_activate(7):
>>> slap_listener(ldap:///)
connection_get(11): got connid=1
connection_read(11): checking for input on id=1
ber_get_next
ber_get_next: tag 0x30 len 45 contents:
ber_get_next
do_bind
ber_scanf fmt ({imt) ber:
ber_scanf fmt (m}) ber:
>>> dnPrettyNormal: <cn=Users,dc=internal,dc=priv>
<<< dnPrettyNormal: <cn=Users,dc=internal,dc=priv>, <cn=users,dc=internal,dc=priv>
do_bind: version=3 dn="cn=Users,dc=internal,dc=priv" method=128
send_ldap_result: conn=1 op=0 p=3
send_ldap_response: msgid=1 tag=97 err=49
ber_flush: 14 bytes to sd 11
connection_get(11): got connid=1
connection_read(11): checking for input on id=1
ber_get_next
ber_get_next on fd 11 failed errno=0 (Success)
connection_closing: readying conn=1 sd=11 for close
connection_close: conn=1 sd=11
我不太了解 LDAP — 有人可以建议一种解决方法吗?
答案1
您应该将 LDAP DB 绑定为具有修改数据库凭据的用户。一种方法是使用rootdn somethinghere
在slapd配置文件文件。
因此,如果您rootdn cn=TheMightyRootUser,ou=users,dc=internal,dc=priv
在 slapd.conf 中有此信息,请将其cn=TheMightyRootUser,ou=users,dc=internal,dc=priv
作为 ldapadd 的 -D 参数提供。
答案2
-D 'cn=Users,dc=internal,dc=priv' 可能没有意义。我猜你想将用户添加到 ou=Users,dc=internal,dc=priv。ou 表示 LDAP 中的子树。cn 表示 LDAP 记录。
-D 后面应该跟着包含 LDAP 管理员帐户 ('binddn') 的条目。
cn=Users,etc. 对于管理员用户来说是一个奇怪的名字。
可能猜测没有 cn=Users,etc。您可能应该将其替换为 cn=admin,dc=internal,dc=priv(引号是多余的)。您应该编辑 ldif 文件以反映您想要将条目放置在 ou=Users 子树中的事实
另一种可能性是您的 LDAP 安装使用的是 SASL,而不是简单身份验证(用 -x 表示)