Здравствуйте, Никита!
Поэкспериментировал с autogroup. Несколько выводов:
1. В старых версиях OpenLDAP (до 2.4.40) это наложение работает очень плохо, чуть что сразу вываливается и вешает slapd. У меня дома на ubuntu 14.04 (openldap-2.4.31) всё работало ужасно, собрал из исходников версию 2.4.45 -- стало гораздо лучше.
2. Если автогруппа добавлена, когда в каталоге уже есть учётки пользователей, то эти существующие учётки не попадут в неё в качестве member. Чтобы что-то произошло с автогруппой, нужно выполнить операцию с учётной записью пользователя (add, delete, modify, modrdn). Вывод: либо добавлять учётки пользователей после добавления автогруппы, либо сделать какую-нибудь фиктивную модификацию уже имеющихся учёток.
Ну а так Вашу задачу мне удалось успешно реализовать. slapd.conf:
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/dyngroup.schema
moduleload back_mdb.so
moduleload memberof.so
moduleload autogroup.so
database mdb
directory /data/openldap-experiments/2017-11-21_autogroup_memberof_filter/db/
suffix dc=mycompany,dc=ru
rootDN cn=manager,dc=mycompany,dc=ru
rootPW test
overlay memberof
memberof-group-oc groupOfNames
memberof-member-ad member
memberof-memberof-ad memberOf
overlay autogroup
autogroup-attrset groupOfURLs memberURL member
Первоначальное наполнение каталога 01-init.ldif:
dn: dc=mycompany,dc=ru
objectClass: organization
objectClass: dcObject
dc: mycompany
o: My Company
dn: ou=People,dc=mycompany,dc=ru
objectClass: organizationalUnit
ou: People
dn: ou=Groups,dc=mycompany,dc=ru
objectClass: organizationalUnit
ou: People
ou: Groups
dn: cn=StatGroup,ou=Groups,dc=mycompany,dc=ru
objectClass: groupOfNames
objectClass: extensibleObject
cn: StatGroup
gidNumber: 11001
member: cn=dummy
dn: cn=AutoGroup,ou=Groups,dc=mycompany,dc=ru
objectClass: groupOfURLs
objectClass: extensibleObject
cn: AutoGroup
gidNumber: 11002
memberURL: ldap:///ou=People,dc=mycompany,dc=ru??sub?(&(objectClass=inetOrgPerson)(!(memberOf=cn=StatGroup,ou=Groups,dc=mycompany,dc=ru)))
Добавляем пользователей (02-add_users.ldif):
dn: uid=ivanov,ou=People,dc=mycompany,dc=ru
objectClass: inetOrgPerson
objectClass: posixAccount
uid: ivanov
cn: Ivan Ivanov
sn: Ivanov
userPassword: 123
uidNumber: 11001
gidNumber: 11001
homeDirectory: /home/ivanov
loginShell: /bin/bash
dn: uid=petrov,ou=People,dc=mycompany,dc=ru
objectClass: inetOrgPerson
objectClass: posixAccount
uid: petrov
cn: Petr Petrov
sn: Petrov
userPassword: 123
uidNumber: 11002
gidNumber: 11001
homeDirectory: /home/petrov
loginShell: /bin/bash
dn: uid=sidorov,ou=People,dc=mycompany,dc=ru
objectClass: inetOrgPerson
objectClass: posixAccount
uid: sidorov
cn: Sidor Sidorov
sn: Sidorov
userPassword: 123
uidNumber: 11003
gidNumber: 11001
homeDirectory: /home/sidorov
loginShell: /bin/bash
Что в каталоге:
$ ldapsearch -xLLL -H ldap://127.1:9000 -b dc=mycompany,dc=ru '(|(memberOf=*)(member=*))' memberOf member
dn: cn=StatGroup,ou=Groups,dc=mycompany,dc=ru
member: cn=dummy
dn: cn=AutoGroup,ou=Groups,dc=mycompany,dc=ru
member: uid=ivanov,ou=People,dc=mycompany,dc=ru
member: uid=petrov,ou=People,dc=mycompany,dc=ru
member: uid=sidorov,ou=People,dc=mycompany,dc=ru
Добавим члена в статическую группу (03-add_member.ldif):
dn: cn=StatGroup,ou=Groups,dc=mycompany,dc=ru
changetype: modify
add: member
member: uid=petrov,ou=People,dc=mycompany,dc=ru
Что в каталоге:
$ ldapsearch -xLLL -H ldap://127.1:9000 -b dc=mycompany,dc=ru '(|(memberOf=*)(member=*))' memberOf member
dn: cn=StatGroup,ou=Groups,dc=mycompany,dc=ru
member: cn=dummy
member: uid=petrov,ou=People,dc=mycompany,dc=ru
dn: cn=AutoGroup,ou=Groups,dc=mycompany,dc=ru
member: uid=ivanov,ou=People,dc=mycompany,dc=ru
member: uid=sidorov,ou=People,dc=mycompany,dc=ru
dn: uid=petrov,ou=People,dc=mycompany,dc=ru
memberOf: cn=StatGroup,ou=Groups,dc=mycompany,dc=ru
Удалим члена из статической группы (04-del_member.ldif):
dn: cn=StatGroup,ou=Groups,dc=mycompany,dc=ru
changetype: modify
delete: member
member: uid=petrov,ou=People,dc=mycompany,dc=ru
Что в каталоге:
$ ldapsearch -xLLL -H ldap://127.1:9000 -b dc=mycompany,dc=ru '(|(memberOf=*)(member=*))' memberOf member
dn: cn=StatGroup,ou=Groups,dc=mycompany,dc=ru
member: cn=dummy
dn: cn=AutoGroup,ou=Groups,dc=mycompany,dc=ru
member: uid=ivanov,ou=People,dc=mycompany,dc=ru
member: uid=petrov,ou=People,dc=mycompany,dc=ru
member: uid=sidorov,ou=People,dc=mycompany,dc=ru
Всё работает так, как Вы хотели.
Егор