2011-08-22 91 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 –

相關問題