0

我想在 bash 脚本中检查是否存在具有给定 DN 的特定组织单位。

我正在做一个 ldapsearch:

OU="ou=HQ,dc=myroot,dc=local"

ldapsearch -h localhost -b dc=myroot,dc=local -x -v "(&(objectClass=organizationalUnit)(dn="'"'$OU'"'"))"

即使 DN 存在,它也总是导致 0。

我也试过:

ldapsearch -h localhost -b dc=myroot,dc=local -x -v "(&(objectClass=organizationalUnit)(dn=$OU))"

但结果是一样的。

我该怎么做?dn 属性有窍门吗?

忽略我正在使用简单的身份验证。

4

1 回答 1

0

您不能将 DN 放在搜索过滤器中,因为 DN 不是属性名称。将您的 dn 作为搜索基础 (ldapsearch -b) 并将 objectclass 放入搜索过滤器。像这样的东西:

OU='ou=HQ,dc=myroot,dc=local'
ldapsearch -h localhost -b "$OU" -x -v -D'cn=admin,dc=myroot,dc=local' -wyour_ldap_password '(&(objectClass=organizationalUnit))'

你会没事的。

于 2012-03-18T18:48:29.300 回答