通过它的DN检查organizationalUnit是否存在。 (LDAP,Bash)

时间:2012-03-18 16:46:54

标签: bash search ldap dn

我想在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属性的技巧?

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

1 个答案:

答案 0 :(得分: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))'

你会没事的。