2013-05-28 34 views
3

我从ldap获取有关用户的信息。这包括完整的“CN = cnBlah,OU = ouBlah,DC = dcBlah”形式的directReports。我正在尝试再次查找以查找有关reportee的信息。如何在dlp中通过dn进行搜索

到目前为止,我已经能够真正找到所述用户的唯一方法是打破CN =并将字符串的其余部分设置为基础。

这是做这件事的正确方法吗?或者有没有一种方法可以搜索整个dn的条目?

回答

5

使用DN作为搜索中的基础对象,并将搜索范围设置为base

有关信息,请参阅Using ldapsearch

+0

我发现(在特里的另一篇文章中)这个神奇的组合似乎是:1)将搜索基础设置为您正在查找的DN。 2)将搜索过滤器设置为“(&)”。 –

1

调用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'的管道无法修复。

-1

如果您已经拥有完整的DN,则根本不需要执行任何搜索。只要做一个查找操作。

+2

@downvoter请解释。无法解释的downvotes容易被视为纯粹的网站破坏行为。如果您认为有一些错误,请指定它。 – EJP

+0

我仍然对这些看法感到困惑。我的生产代码已经完成了六年。 – EJP