如何在LDAP中查询posixGroup成员的电子邮件地址?

时间:2011-08-22 20:49:16

标签: ldap openldap

我正在运行一个OpenLDAP服务器,其中包含posixGroup类型的组和类型为inetOrgPerson的用户。

我需要为指定组中的用户提取电子邮件地址属性。

posixGroup类型仅将成员的uid存储在名为memberUid的属性中。

inetOrgPerson类型不存储组成员资格信息。

所以基本上我需要查询一个组,提取用户id,使用这些用户id找到匹配的inetOrgPerson节点,然后获取mail属性。

我希望能够在一个单独的过滤查询中完成所有这些操作,但我似乎无法找到正确的语法来实现它。这种情况似乎比我可以找到Googling的大多数示例查询更复杂。

另外,我试图在可能的情况下(在Ubuntu上)从sh脚本中完成所有操作,因此我可以使用ldapsearch命令。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这是覆盖成员的工作。它在每个用户中维护一个'memberOf',例如,这是来自每个组中memberUID的反向映射。然后你只需过滤(&(objectClass = inetOrgPerson)(memberOf = {0})),其中{0}成为组名。