Пусть мы используем ldap. Пусть мы завели в нём несколько пользователей. Пусть также мы завели несколько групп, пусть они будут например posixGroup. И пусть теперь мы хотим авторизовывать пользователей в зависимости от принадлежности к той или иной группе.
Естественно мы пытаемся сделать запрос вроде такого:
(&(cn=TestGroup)(memberUid=user1))
Но оказывается что dma_k здесь: http://www.opennet.ru/base/net/ldap_search_filter.txt.html всё таки ошибся.
И во всех похожих случаях, а их можно встретить немало, оказывается что такого рода запрос невозможен. Во всех случаях, обсуждая похожую, в общем типичную, задачу, в результате приходят к тому что нужно использовать некий memberOf. Но для него есть несколько ограничений.
Во первых это наложение (Overlay), то есть этот функционал не входит в базовую поставку. Но даже если мы установим этот оверлей, окажется что к posixGroup он неприменим. И нужно либо пересаживать пользователей в другую группу, либо искать как скрестить memberOf и posixGroup (встречается описание и для этого).
И вот тут у меня возник вопрос. А для чего вообще нужны эти группы? Если их нельзя использовать по своему прямому назначению. Ну, по крайней мере мне кажется что это их прямое назначение: группировать пользователей. Потому что если звёзды зажигают^W^W эти группы существуют, то может быть всё таки существует какой нибудь естественный механизм их использования?