openldap 2.4.44。错误“-D 先前指定”

openldap 2.4.44。错误“-D 先前指定”

我尝试从 ldap 根 DSE 中递归删除第三个 DIT,因为不再需要它,但我在客户的环境中收到以下错误:

host:~# ldapdelete -x -W -D cn=admin,cn=config -r -f /tmp/ldap-bck/delete.ldif

ldapdelete: -D previously specified

同样的命令在我的 Virtualbox Centos 7.5 服务器上的测试实验室中运行得非常顺利。但在 RHEL 7.6 的客户环境中则不然。 openldap 版本号相同,2.4.44。我正在摆弄选项,更改了选项的顺序,更改了 bindDN (-D) 和 DN 的“”和 '',正在使用 -c 和 -v 选项查看更多...并且我无法解决问题...

首先我尝试删除 DN:

host:~# ldapdelete -x -W -D cn=admin,cn=config 'dc=x,dc=y,dc=z,dc=zzz'

然后我尝试使用选项 -f :

host:~# ldapdelete -x -W -D cn=admin,cn=config -r -f /tmp/ldap-bck/delete.ldif

已经尝试了两个bindDN-s(cn = admin,cn = config和rootDN cn = admin,dc = x,dc = y,dc = z,dc = zzz以及,最后一个必须工作)。

尝试过不使用 -D 参数 - 然后我得到:

host:~# ldapdelete -r -f /tmp/ldap-bck/delete.ldif

Enter LDAP Password:

ldap_delete: Insufficient access (50)

host:~# ldapdelete -r -c -f /tmp/ldap-bck/delete.ldif

Enter LDAP Password:

ldap_bind: Server is unwilling to perform (53)

 additional info: unauthenticated bind (DN with no password) disallowed

host:~# ldapdelete -r -v -f /tmp/ldap-bck/delete.ldif

ldap_initialize( ldapi:///??base )

Enter LDAP Password:

ldap_bind: Server is unwilling to perform (53)

  additional info: unauthenticated bind (DN with no password) disallowed

我想因为bindDN 和密码,两者都是需要的。 (我有密码,正确的密码,不可能出现错误,因为当前所有 3 个 DIT 和配置数据库使用相同的密码。)

我已经尝试过 -Y EXTERNAL 身份验证,但这不起作用:

host:~# ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/ldap-bck/delete.ldif -n

ldapmodify: incompatible with authentication choice

所以我必须使用简单身份验证。但是,一旦我指定 -D 选项,就会出现相同的错误。我尝试使用 ldif 文件对 ldapmodify 执行相同操作。相同的错误:

host:~# ldapmodify -D "cn=admin,cn=config" -x -W -f /tmp/ldap-bck/delete.ldif -n

host:~# ldapmodify -D "cn=admin,dc=x,dc=y,dc=z,dc=zzz" -x -W -f /tmp/ldap-bck/delete.ldif -n

然后我尝试运行 ldapsearch 来检查功能,但如果指定 -D 选项,则会出现相同的错误。

host:~# ldapsearch -x -D "cn=admin,dc=x,dc=y,dc=z,dc=zzz" -W -b 'dc=x,dc=y,dc=z,dc=zzz' '(objectclass=*)' -c

ldapsearch: -D previously specified

同样的错误出现在 3 台 RHEL 服务器(开发、测试和生产)上,因此这不仅仅是一台服务器的奇怪行为。

我在“环境”中使用 SSL 证书 - 因此在我的测试实验室和客户环境中。我的测试实验室和客户环境的 openldap 配置类似。

答案1

我在上述文件中没有找到任何指定的binddn。但我们发现定义了别名...有人使用选项 -x -W -D -H 为其中一个 DIT 设置了 ldapadd、ldapdelete 等别名。所以我的这个 DIT 命令不能使用标准语法。当然,我的命令对其他 DIT 也不起作用......无论如何还是谢谢你

相关内容