Наш корпоративный каталог LDAP размещен на открытой директории Snow Leopard Server. Я пытаюсь использовать ldapsearchинструмент для экспорта файла .ldif для импорта на другой внешний сервер LDAP для внешней аутентификации; в основном пытается использовать одни и те же учетные данные внутри и снаружи.
Я ldapsearchпоработал и дал мне содержимое и атрибуты всего в подразделении «Пользователи» и даже отфильтровал только те атрибуты, которые мне нужны:
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.