ldap脚本,按属性进行比较

时间:2016-04-22 13:22:16

标签: bash ldap

我有文本文件,每行都有从我的LDAP获取的ldap属性,属性是'uid',它看起来像第一个和第二个名字(例子 - > john.carter),所以我想做什么是编写一个bash脚本,它将文本文件中的uid与ldap中特定人群的uid进行比较,如果有匹配,我想从该组中打印另一个属性。我的问题在于比较,即如何将文本文件中的uid与Ldap中的uid相匹配。有什么建议?

这是我的ldapsearch: ldapsearch -H ldap:// server -D“uid = name,ou = group,dc = some,dc = domain,dc = com”-w“example”-b“o = organizationName,ou = group,dc = some ,DC =域,DC = COM” 我想它应该用'while - do,done'循环完成,所以问题是如何检查uid是否来自:'o = organizationName,ou = group,dc = some,dc = domain,dc = com'与文本文件中的uid匹配,在文本文件中,它们在一行上排序:  测试一下  test1.test1 ...

1 个答案:

答案 0 :(得分:0)

根据文件中有多少行,您可以将它们收集到一个或类似的语句中(|(uid = john.carter)(uid = jane.carter)(uid = ...然后添加剩下的你的标准。结果看起来像这样:

(&(|(uid=john.carter)(uid=jane.carter)(uid=john.doe))(memberOf=o=organizationName,ou=group,dc=some,dc=domain,dc=com))

如果有太多,那么你可以像这样为每一行创建一个查询:

(&(uid=john.carter)(memberOf=o=organizationName,ou=group,dc=some,dc=domain,dc=com))
(&(uid=jane.carter)(memberOf=o=organizationName,ou=group,dc=some,dc=domain,dc=com))
(&(uid=john.doe)(memberOf=o=organizationName,ou=group,dc=some,dc=domain,dc=com))

然后,您需要运行每个查询,指定要返回的字段。