Наш корпоративний каталог LDAP розміщений у налаштуваннях Open Leopard Server Open Directory. Я намагаюся використовувати ldapsearch
інструмент для експорту файлу .ldif для імпорту на інший зовнішній сервер LDAP для аутентифікації зовні; в основному намагаються використовувати однакові облікові дані всередині та зовні.
Я ldapsearch
працюю і надаю мені вміст і атрибути всього в "Користувачі" OU, і навіть фільтрую лише ті атрибути, які мені потрібні:
ldapsearch -xLLL -H ldap://server.domain.net /
-b "cn=users,dc=server,dc=domain,dc=net" objectClass /
uid uidNumber cn userPassword > directorycontents.ldif
Це дає мені список користувачів та властивостей, які я можу імпортувати на віддалений сервер OpenLDAP.
dn: uid=username1,cn=users,dc=server,dc=domain,dc=net
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: organizationalPerson
uidNumber: 1000
uid: username1
userPassword:: (hashedpassword)
cn: username1
Однак, коли я намагаюся виконати той самий запит на OD "групі" замість "контейнера", результати виглядають приблизно так:
dn: cn=groupname,cn=groups,dc=server,dc=domain,dc=net
objectClass: posixGroup
objectClass: apple-group
objectClass: extensibleObject
objectClass: top
gidNumber: 1032
cn: groupname
memberUid: username1
memberUid: username2
memberUid: username3
Мені дуже хочеться - це список користувачів із головного прикладу, відфільтрованого на основі їх членства в групі, але схоже, що членство встановлюється з боку групи, а не з боку облікового запису користувача. Має бути спосіб фільтрувати це і експортувати лише те, що мені потрібно, правда?
memberOf
є операційним атрибутом і його потрібно запитувати прямо. Простий ,ldapsearch
як запропоновано тут не буде повертатисяmemberOf
, навіть якщо він існує. Слід також зазначити, щоmemberOf
накладення зазвичай не вмикається за замовчуванням, хоча я не знаю, як це обробляється в OS X та Open Directory.