2011-08-22 49 views
2

我正在运行带有类型为posixGroup的组和类型为inetOrgPerson的用户的OpenLDAP服务器。如何查询LDAP的posixGroup成员的电子邮件地址?

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

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

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

所以基本上我需要查询一个组,提取用户标识符,使用这些用户标识符来查找匹配的inetOrgPerson节点,然后获取邮件属性。

我希望能够在一个单一的过滤查询中做到这一切,但我似乎无法找到正确的语法来实现它。这种情况似乎比我可以找到谷歌搜索的大多数示例查询更复杂。如果可能的话(在Ubuntu上),我试图从sh脚本完成所有操作,所以我有可用的ldapsearch命令。

任何想法?

回答

0

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

+0

这个答案应该被接受。 –

+2

它实际上工作吗?我对'memberof'覆盖文档的阅读是它需要一个包含完整DN的组的'member'属性,而'posixGroup'只存储'memberUid'。这需要额外的信息来解决(例如,你在哪里搜索?)。 – larsks

+0

的确,memberof似乎只适用于member属性,而不是像posixGroup中的memberUid –

相关问题