我正在从 ldap 中提取有关用户的信息。这包括 directReports,它采用完整的“CN=cnBlah,OU=ouBlah,DC=dcBlah”形式。我正在尝试进行另一次查找以查找有关报告人的信息。
到目前为止,我能够真正找到所说用户的唯一方法是断开 CN= 并将字符串的其余部分设置为基础。
这是正确的做法吗?或者有没有办法在给定完整 dn 的情况下搜索条目?
我正在从 ldap 中提取有关用户的信息。这包括 directReports,它采用完整的“CN=cnBlah,OU=ouBlah,DC=dcBlah”形式。我正在尝试进行另一次查找以查找有关报告人的信息。
到目前为止,我能够真正找到所说用户的唯一方法是断开 CN= 并将字符串的其余部分设置为基础。
这是正确的做法吗?或者有没有办法在给定完整 dn 的情况下搜索条目?
使用 DN 作为搜索中的基础对象,并将搜索范围设置为base
。
ldapsearch
使用该选项调用-f
几乎可以满足您的需求。
将您的第一个搜索结果保存到文件中,仅包含属性的值。cn
例如,您的文件将如下所示:
user1
user2
cnBlah
john
jim
user883
然后调用 ldapsearch,其基数足以包含所有用户。这可能是-b dc=users,dc=example,dc=com
。
因此,如果您将用户列表保存到名为 的文件users.txt
中,您的 ldapsearch 命令行将如下所示:
#I removed the hostname, port and authentification for clarity
ldapsearch -b "dc=users,dc=example,dc=com" -s sub "cn=%s" -f users.txt -LLL
长行将以约 76 个字符换行。没有什么是管道perl -p00e 's/\r?\n //g'
无法解决的。
结束这个问题的循环,由https://www.openldap.org/lists/openldap-software/200503/msg00520.html提供
当您知道条目的 DN 时,无需全部“搜索”,直接检索条目即可: ldapsearch -x -LLL -b "uid=droy,ou=people,dc=eclipse,dc=org "
所以这回答了“你如何使用 ldapsearch 来查找()一个项目而不是搜索它”