我正在运行一个OpenLDAP服务器,其中包含posixGroup类型的组和类型为inetOrgPerson的用户。
我需要为指定组中的用户提取电子邮件地址属性。
posixGroup类型仅将成员的uid存储在名为memberUid的属性中。
inetOrgPerson类型不存储组成员资格信息。
所以基本上我需要查询一个组,提取用户id,使用这些用户id找到匹配的inetOrgPerson节点,然后获取mail属性。
我希望能够在一个单独的过滤查询中完成所有这些操作,但我似乎无法找到正确的语法来实现它。这种情况似乎比我可以找到Googling的大多数示例查询更复杂。
另外,我试图在可能的情况下(在Ubuntu上)从sh脚本中完成所有操作,因此我可以使用ldapsearch命令。
有什么想法吗?
答案 0 :(得分:0)
这是覆盖成员的工作。它在每个用户中维护一个'memberOf',例如,这是来自每个组中memberUID的反向映射。然后你只需过滤(&(objectClass = inetOrgPerson)(memberOf = {0})),其中{0}成为组名。