Глава 14. Инструменты LDAP

  1. Инструменты OpenLDAP — утилиты командной строки
  2. LDAPBrowser/Editor — LDAP браузер, которым пользуемся мы
  3. Инструменты ApacheDS — инструменты и утилиты

Примечание: В последнее время многие используют в качестве LDAP-клиента и браузера общего назначения гибкий и мощный Apache Directory Studio. Что ж, это прекрасный выбор. Мы же склонны придерживаться LDAPBrowser/Editor — название уж больно хорошее. Старого пса новым трюкам не выучишь.

Инструменты OpenLDAP

У OpenLDAP есть набор инструментов. Мы описываем их здесь для полноты картины, но эту информацию всегда можно получить из соответствующих man-страниц, если Вам посчастливилось использовать системы 'nix.

Жизненно важное правило: в общем случае, если команда начинается с ldap, slapd ДОЛЖЕН быть запущен. Если же она начинается с slap (а именно slapcat, slapindex, slapadd) slapd НЕ ДОЛЖЕН быть запущен, а если он запущен, Вы можете повредить базу данных ldap. Использовать их совместно — только на свой страх и риск, хотя в последних версиях OpenLDAP утверждается, что при использовании bdb или hdb slapcat можно выполнять при запущенном slapd. Хм.

Единственное исключение из этого правила — это slappasswd, незлобная маленькая утилитка, предназначенная для создания паролей. Печально, что это маленькое исключение существует — настолько важное значение имеет необходимость остановки slapd при запуске всех остальных команд. И хотя это и бессмысленно, — останавливать slapd только для того, чтобы выполнить slappasswd, лучше выработать условный рефлекс на префикс slap и всегда останавливать slapd, чем получить разрушенную базу данных при запуске, скажем, slapcat. Вот насколько важна эта штука. Некоторые из нас скажут: "Я уж точно никогда не ошибусь, я ведь умный". Но когда в панике пытаешься оживить службу, и при этом 57 человек дышат тебе в затылок, — ну и кто тут умный?

Список инструментов OpenLDAP

  1. ldapadd — добавляет LDIF-записи в каталог LDAP
  2. ldapauth — добавляет LDIF-записи в каталог LDAP
  3. ldapdelete — удаляет LDAP-записи
  4. ldapmodify — модифицирует существующие записи LDAP
  5. ldapmodrdn — модифицирует DN записи LDAP
  6. ldappasswd — модифицирует пароль записи
  7. ldapsearch — осуществляет поиск записей LDAP
  8. ldapwhoami — выполняет LDAP-операцию Who Am I на сервере
  9. slapacl — проверяет доступ к атрибутам, изучая конфигурацию DIT
  10. slapadd — добавляет записи LDAP в базу данных — СНАЧАЛА ОСТАНОВИТЕ SLAPD
  11. slapauth — проверяет данные SASL на соответствие с DIT
  12. slapcat — экспортирует LDIF из базы данных LDAP — СНАЧАЛА ОСТАНОВИТЕ SLAPD
  13. slapd — автономный демон LDAP
  14. slapdn — проверяет DN на соответствие конфигурации DIT
  15. slapindex — переиндексирует базу данных LDAP — СНАЧАЛА ОСТАНОВИТЕ SLAPD
  16. slappasswd — генерирует пароль
  17. slaptest — проверяет файл slapd.conf или директорию cn=config (slapd.d)

ldapadd & ldapmodify

ldapadd и ldapmodify (обновлёно для 2.4) принимают одни и те же аргументы и по существу могут рассматриваться как синонимы, то есть ldapmodify с аргументом -a — это и есть ldapadd. Для обоих утилит требуется работающий LDAP-сервер и обе ожидают входную информацию (в формате LDIF) либо со стандартного входа (консоли), либо из LDIF-файла при использовании аргумента -f. Обе команды принимают обширный набор аргументов. На практике реальная работа выполняется командами из LDIF-файла.

Примечание: В версиях до 2.3(?), если в LDIF опущено changetype, то по умолчанию при использовании ldapadd выполняется операция add, а при запуске ldapmodify выполняется операция modify. Начиная с 2.3 никаких предположений не делается, и LDIF должен содержать все необходимые директивы.

ldapmodify/ldapadd [-a] [-c] [-d debug_level] [-f file] [-D binddn] [-H ldapuri] [-h ldaphost] [-I] [-k] [-K] [-M[M]] [-n] [-O security-properties] [-p ldapport] [-P 2|3] [-Q] [-S file] [-R realm] [-U authcid] [-v] [-W] [-w password] [-x] [-X authzid] [-y passwdfile] [-Y mech] [-Z[Z]]

АргументОписание
-aДобавить новые записи. ldapmodify по умолчанию модифицирует существующие записи. При использовании ldapmodify в качестве ldapadd, этот флаг должен быть установлен.
-cРежим продолжения операции. О возникающих ошибках сообщается, но ldapmodify продолжает вносить изменения. По умолчанию после сообщения об ошибке происходит выход.
-d debugУстанавливает уровень отладки LDAP в debug. Чтобы эта опция имела эффект, ldapmodify/add должны быть скомпилированы с установленным LDAP_DEBUG.
-D binddnИспользует Distinguished Name, предъявленный в аргументе (binddn), при соединении с каталогом LDAP.
-f fileЧитает информацию о модификации записи из файла file, а не со стандартного входа.
-FПринудительное применение всех изменений, независимо от содержимого входных строк, начинающихся с replica: (по умолчанию строки replica: сравниваются с хостом и портом LDAP-сервера, на который вносится изменение, для принятия решения, должна ли действительно применяться запись replog).
-h ldaphostУказывает хост, на котором запущен ldap-сервер (по умолчанию localhost). Устаревший аргумент, используйте вместо него -H.
-H ldapuriЗаменяет -h и -p. Определяет один или несколько (разделённых пробелами или запятыми) URI, указывающих на ldap-сервер(ы) в форме scheme://host.name:port. Если не указано, значение по умолчанию ldap://localhost:389. Другой вариант: можно указать DN, который будет использоваться для нахождения соответствующего хоста (хостов) с помощью SRV-записей DNS, как определено в RFC 2782. Данный DN должен быть непустой последовательностью AVA, тип атрибута которых "dc" (domain component), и должен быть экранирован в соответствии с RFC 2396. Примеры:
# стандартный формат URI (порт по умолчанию - 389)
-H ldap://ldap.example.com

# поиск SRV-записей DNS в форме
# _ldap._tcp._example.com SRV ....
-H "dc=example,dc=com"
-IВключает интерактивный режим SASL. Запрос происходит всегда. По умолчанию запрос происходит только в случае необходимости.
-kИспользует аутентификацию Kerberos IV вместо простой аутентификации. Подразумевается, что у Вас уже есть действительное разрешение на получение разрешения (ticket granting ticket). Чтобы данная опция имела эффект, Вы должны компилировать инструменты с поддержкой Kerberos.
-KТо же, что и -k, но выполняется только первый шаг операции соединения Kerberos IV. Это полезно, когда Вы соединяетесь с slapd и на Вашем контроллере(ах) домена Kerberos не зарегистрирован принципал x500dsa.hostname.
-M[M]Включает элемент управления manage DSA IT. -MM делает этот элемент управления критичным. Требуется для удаления отсылок.
-nДемонстрирует, что будет сделано, но реальных модификаций записей не производится. Полезно для отладки в сочетании с -v.
-O propsУказывает свойства безопасности SASL.
-QВключает тихий режим SASL. Запрос не происходит никогда.
-R realmУказывает область (realm) аутентификационного ID для подключений SASL. Форма realm зависит от реально используемого механизма SASL.
-S fileДобавления или изменения записей, которые были пропущены из-за возникших ошибок, записываются в файл file и возвращаемые сервером сообщения об ошибках добавляются в качестве комментариев. При использовании с -c создаётся LDIF-файл, который можно откорректировать (отредактировать) и снова использовать с ldapadd/ldapmodify.
-U authcidУказывает аутентификационный ID для подключений SASL. Форма ID зависит от реально используемого механизма SASL.
-vРежим подробного вывода — диагностические сообщения выводятся на стандартный вывод.
-w passwordУказывает использовать пароль в открытом виде password для простой аутентификации. Для безопасности паролей лучше использовать -W или -y.
-WУказывает запрашивать пароль для простой аутентификации. Это значительно более безопасно, чем указывать пароль в открытом виде в командной строке (-w).
-xУказывает использовать простую аутентификацию вместо SASL. Если не указан, по умолчанию используется SASL-аутентификация.
-X authzidУказывает ID запроса авторизации для подключений SASL. authzid должен быть в одном из следующих форматов: dn:<distinguished name> или u:<username>
-y passfileИспользует полное содержимое passfile в качестве пароля для простой аутентификации.
-Y mechУказывает используемый для аутентификации механизм SASL. Если не указан, выберет лучший из известных серверу механизмов.
-Z[Z]Пытается выполнить расширенную операцию StartTLS (Transport Layer Security). При использовании -ZZ, команда требует успешного выполнения операции.

Примеры:

Используется указанный LDIF-файл для модификации указанного LDAP-сервера, аутентификация с использованием rootdn и его пароля. Используется простая аутентификация.

Приведённая ниже команда разбита на две строки только из соображений форматирования HTML и должна записываться в одну строку:

ldapadd -H ldap://ldaphost.example.com -x -D "cn=jimbob,dc=example,dc=com" 
 -f /tmp/addgroups.ldif -w dirtysecret

Примечания:

  1. Начиная с OpenLDAP 2.x механизм безопасности по умолчанию — SASL. Если он не используется, должен быть задан аргумент -x.
  2. Если сервер LDAP находится на том же самом хосте, аргумент -H можно опустить.
  3. Если используется аргумент -W (не путать с -w), то утилита запрашивает ввод пароля.

Наверх

ldapdelete

ldapdelete открывает соединение с сервером LDAP, подключается и удаляет одну или несколько записей. Если команде был предоставлен один или несколько аргументов DN, записи с этими Distinguished Names будут удалены. Каждый DN должен быть оформлен в виде строкового представления LDAPv3, как определено в RFC 2253. Если не было предоставлено аргументов dn, список DN будет считываться со стандартного входа (или из файла, если используется флаг -f).

Примечание: Файл, передаваемый этой команде, не в LDIF-формате. Это текстовый файл, содержащий один или несколько DN (по одному в строке), которые будут обрабатываться командой. Пример:

cn=someone,ou=people,dc=example,dc=com
cn=someone else,ou=people,dc=example,dc=com

Альтернативный метод удаления записей — использовать ldapmodify с LDIF-файлом такого содержания:

dn: cn=someone,ou=people,dc=example,dc=com
changetype: delete

dn: cn=someone else,ou=people,dc=example,dc=com
changetype: delete

ldapdelete [-c] [-d debuglevel] [-D binddn] [-f file] [-h ldaphost] [-H ldapuri] [-I] [-k] [-K] [-M[M]] [-n] [-O security-properties] [-P 2|3] [-p ldapport] [-Q] [-R realm] [-U authcid] [-v] [-W] [-w passwd] [-x] [-X authzid] [-y passwdfile] [-Y mech] [-Z[Z]] [dn]...

АргументОписание
-cРежим продолжения операции. О возникающих ошибках сообщается, но ldapdelete продолжает вносить изменения. По умолчанию после сообщения об ошибке происходит выход.
-d debugУстанавливает уровень отладки LDAP в debug. Чтобы эта опция имела эффект, ldapdelete должна быть скомпилирована с установленным LDAP_DEBUG.
-D binddnИспользует Distinguished Name, предъявленный в аргументе (binddn), при соединении с каталогом LDAP.
-f fileУказывает считывать информацию о модификации записи из файла, а не со стандартного входа. Данный файл НЕ в формате LDIF, это простой текстовый файл с DN записей, которые требуется удалить, — по одному в строке.
-h ldaphostУказывает хост, на котором запущен ldap-сервер (по умолчанию localhost). Устаревший аргумент, используйте вместо него -H.
-H ldapuriЗаменяет -h и -p. Определяет один или несколько (разделённых пробелами или запятыми) URI, указывающих на ldap-сервер(ы) в форме scheme://host.name:port. Если не указано, значение по умолчанию ldap://localhost:389. Другой вариант: можно указать DN, который будет использоваться для нахождения соответствующего хоста (хостов) с помощью SRV-записей DNS, как определено в RFC 2782. Данный DN должен быть непустой последовательностью AVA, тип атрибута которых "dc" (domain component), и должен быть экранирован в соответствии с RFC 2396. Примеры:
# стандартный формат URI (порт по умолчанию - 389)
-H ldap://ldap.example.com

# поиск SRV-записей DNS в форме
# _ldap._tcp._example.com SRV ....
-H "dc=example,dc=com"
-IВключает интерактивный режим SASL. Запрос происходит всегда. По умолчанию запрос происходит только в случае необходимости.
-kИспользует аутентификацию Kerberos IV вместо простой аутентификации. Подразумевается, что у Вас уже есть действительное разрешение на получение разрешения (ticket granting ticket). Чтобы данная опция имела эффект, Вы должны компилировать инструменты с поддержкой Kerberos.
-KТо же, что и -k, но выполняется только первый шаг операции соединения Kerberos IV. Это полезно, когда Вы соединяетесь с slapd и на Вашем контроллере(ах) домена Kerberos не зарегистрирован принципал x500dsa.hostname.
-M[M]Включает элемент управления manage DSA IT. -MM делает этот элемент управления критичным.
-nДемонстрирует, что будет сделано, но реальных модификаций записей не производится. Полезно для отладки в сочетании с -v.
-O propsУказывает свойства безопасности SASL.
-p ldapportУказывает альтернативный TCP-порт, на котором ожидает подключения ldap-сервер. Устаревший аргумент, используйте вместо него -H.
-P 2|3Указывает, какую версию протокола LDAP использовать. По умолчанию — 3 (LDAPv3).
-QВключает тихий режим SASL. Запрос не происходит никогда.
-R realmУказывает область (realm) аутентификационного ID для подключений SASL. Форма realm зависит от реально используемого механизма SASL.
-U authcidУказывает аутентификационный ID для подключений SASL. Форма ID зависит от реально используемого механизма SASL.
-vРежим подробного вывода — диагностические сообщения выводятся на стандартный вывод.
-w passwordУказывает использовать пароль в открытом виде password для простой аутентификации. Для безопасности паролей лучше использовать -W или -y.
-WУказывает запрашивать пароль для простой аутентификации. Это значительно более безопасно, чем указывать пароль в открытом виде в командной строке (-w).
-xУказывает использовать простую аутентификацию вместо SASL. Если не указан, по умолчанию используется SASL-аутентификация.
-X authzidУказывает ID запроса авторизации для подключений SASL. authzid должен быть в одном из следующих форматов: dn:<distinguished name> или u:<username>
-y passfileИспользует полное содержимое passfile в качестве пароля для простой аутентификации.
-Y mechУказывает используемый для аутентификации механизм SASL. Если не указан, выберет лучший из известных серверу механизмов.
-Z[Z]Пытается выполнить расширенную операцию StartTLS (Transport Layer Security). При использовании -ZZ, команда требует успешного выполнения операции.
dn..Разделённый запятыми список DN, которые нужно удалить (может быть прочитан из файла, если используется аргумент -f).

Наверх

ldapmodrdn

ldapmodrdn открывает соединение с сервером LDAP, подключается и модифицирует RDN записей. Данные о записи считываются со стандартного входа, из файла в случае использования опции -f, либо из пары dn и rdn в командной строке.

ldapmodrdn [-r] [-n] [-v] [-k] [-K] [-c] [-M[M]] [-d debuglevel] [-D binddn] [-W] [-w passwd] [-y passwdfile] [-H ldapuri] [-h ldaphost] [-p ldapport] [-P 2|3] [-O security-properties] [-I] [-Q] [-U authcid] [-R realm] [-x] [-X authzid] [-Y mech] [-Z[Z]] [-f file] [dn rdn]

АргументОписание
-rУдаляет старые значения RDN из записи. По умолчанию старые значения сохраняются.
-nДемонстрирует, что будет сделано, но реальных модификаций записей не производится. Полезно для отладки в сочетании с -v.
-vРежим подробного вывода — диагностические сообщения выводятся на стандартный вывод.
-kИспользует аутентификацию Kerberos IV вместо простой аутентификации. Подразумевается, что у Вас уже есть действительное разрешение на получение разрешения (ticket granting ticket). Чтобы данная опция имела эффект, Вы должны компилировать инструменты с поддержкой Kerberos.
-KТо же, что и -k, но выполняется только первый шаг операции соединения Kerberos IV. Это полезно, когда Вы соединяетесь с slapd и на Вашем контроллере(ах) домена Kerberos не зарегистрирован принципал x500dsa.hostname.
-cРежим продолжения операции. О возникающих ошибках сообщается, но ldapmodrdn продолжает вносить изменения. По умолчанию после сообщения об ошибке происходит выход.
-M[M]Включает элемент управления manage DSA IT. -MM делает этот элемент управления критичным.
-d debugУстанавливает уровень отладки LDAP в debug. Чтобы эта опция имела эффект, ldapmodrdn должна быть скомпилирована с установленным LDAP_DEBUG.
-D binddnИспользует Distinguished Name, предъявленный в аргументе (binddn), при соединении с каталогом LDAP.
-h ldaphostУказывает хост, на котором запущен ldap-сервер (по умолчанию localhost). Устаревший аргумент, используйте вместо него -H.
-H ldapuriЗаменяет -h и -p. Определяет один или несколько (разделённых пробелами или запятыми) URI, указывающих на ldap-сервер(ы) в форме scheme://host.name:port. Если не указано, значение по умолчанию ldap://localhost:389. Другой вариант: можно указать DN, который будет использоваться для нахождения соответствующего хоста (хостов) с помощью SRV-записей DNS, как определено в RFC 2782. Данный DN должен быть непустой последовательностью AVA, тип атрибута которых "dc" (domain component), и должен быть экранирован в соответствии с RFC 2396. Примеры:
# стандартный формат URI (порт по умолчанию - 389)
-H ldap://ldap.example.com

# поиск SRV-записей DNS в форме
# _ldap._tcp._example.com SRV ....
-H "dc=example,dc=com"
-p ldapportУказывает альтернативный TCP-порт, на котором ожидает подключения ldap-сервер. Устаревший аргумент, используйте вместо него -H.
-P 2|3Указывает, какую версию протокола LDAP использовать. По умолчанию — 3 (LDAPv3).
-w passwordУказывает использовать пароль в открытом виде password для простой аутентификации. Для безопасности паролей лучше использовать -W или -y.
-WУказывает запрашивать пароль для простой аутентификации. Это значительно более безопасно, чем указывать пароль в открытом виде в командной строке (-w).
-xУказывает использовать простую аутентификацию вместо SASL. Если не указан, по умолчанию используется SASL-аутентификация.
-X authzidУказывает ID запроса авторизации для подключений SASL. authzid должен быть в одном из следующих форматов: dn:<distinguished name> или u:<username>.
-y passfileИспользует полное содержимое passfile в качестве пароля для простой аутентификации.
-Y mechУказывает используемый для аутентификации механизм SASL. Если не указан, выберет лучший из известных серверу механизмов.
-O propsУказывает свойства безопасности SASL.
-IВключает интерактивный режим SASL. Запрос происходит всегда. По умолчанию запрос происходит только в случае необходимости.
-QВключает тихий режим SASL. Запрос не происходит никогда.
-U authcidУказывает аутентификационный ID для подключений SASL. Форма ID зависит от реально используемого механизма SASL.
-R realmУказывает область (realm) аутентификационного ID для подключений SASL. Форма realm зависит от реально используемого механизма SASL.
-Z[Z]Пытается выполнить расширенную операцию StartTLS (Transport Layer Security). При использовании -ZZ, команда требует успешного выполнения операции.
-f fileСчитывает информацию о модификации записи из файла вместо стандартного входа.
dn rdnМодифицирует dn, используя предоставленный rdn.

Наверх

ldappasswd

ldappasswd использует расширенную операцию модификации пароля LDAP (LDAP Password Modify Extended Operation), определённую в RFC 3062 для изменения пароля пользователя, который может располагаться в пределах LDAP DIT (в случае, если пользователь указан с помощью DN), либо браться извне с помощью SASL. Поскольку RFC предполагает, что будет использоваться какая-либо из форм аутентификации, ldappasswd не контролирует явно, какая из них должна использоваться.

ldappasswd [-A] [-a oldpasswd] [-t oldpasswdfile] [-D binddn] 
  [-d debuglevel] [-H ldapuri] [-h ldaphost]  [-n]  [-p ldapport]
  [-S]  [-s newpasswd]   [-T newpasswdfile]   [-v]  [-W]  [-w passwd]
  [-y passwdfile]  [-O props]  [-I]  [-Q]  [-U authcid]
  [-x]  [-X authzid] [-R realm] [-Y mech] [-Z[Z]] [user]
АргументОписание
-AЗапрашивает старый (текущий) пароль. Несовместимо с опциями -a или -t.
-a oldpasswordТекущий пароль указывается значением oldpassword. Несовместимо с опциями -A или -t.
-d debugУстанавливает уровень отладки LDAP в debug. Чтобы эта опция имела эффект, ldappasswd должна быть скомпилирована с установленным LDAP_DEBUG.
-D binddnИспользует Distinguished Name, предъявленный в аргументе (binddn), при соединении с каталогом LDAP.
-h ldaphostУказывает хост, на котором запущен ldap-сервер (по умолчанию localhost). Устаревший аргумент, используйте вместо него -H.
-H ldapuriЗаменяет -h и -p. Определяет один или несколько (разделённых пробелами или запятыми) URI, указывающих на ldap-сервер(ы) в форме scheme://host.name:port. Если не указано, значение по умолчанию ldap://localhost:389. Другой вариант: можно указать DN, который будет использоваться для нахождения соответствующего хоста (хостов) с помощью SRV-записей DNS, как определено в RFC 2782. Данный DN должен быть непустой последовательностью AVA, тип атрибута которых "dc" (domain component), и должен быть экранирован в соответствии с RFC 2396. Примеры:
# стандартный формат URI (порт по умолчанию - 389)
-H ldap://ldap.example.com

# поиск SRV-записей DNS в форме
# _ldap._tcp._example.com SRV ....
-H "dc=example,dc=com"
-IВключает интерактивный режим SASL. Запрос происходит всегда. По умолчанию запрос происходит только в случае необходимости.
-nВыполняются все операции соединения и протокола, но пароль НЕ Устанавливается. Полезно для отладки в сочетании с -v и/или -d.
-O propsУказывает свойства безопасности SASL.
-p ldapportУказывает альтернативный TCP-порт, на котором ожидает подключения ldap-сервер. Устаревший аргумент, используйте вместо него -H.
-P 2|3Указывает, какую версию протокола LDAP использовать. По умолчанию — 3 (LDAPv3).
-QВключает тихий режим SASL. Запрос не происходит никогда.
-R realmУказывает область (realm) аутентификационного ID для подключений SASL. Форма realm зависит от реально используемого механизма SASL.
-s newpasswdИспользует значение newpasswd. Несовместимо с опциями -S и -T.
-SЗапрашивает новый пароль (дважды). Несовместимо с опциями -s и -T.
-t oldpasswdfileСчитывает старый (текущий) пароль из указанного файла. Несовместимо с опциями -a и -A.
-T pathСчитывает новый пароль из указанного файла. Несовместимо с опциями -s и -S.
-U authcidУказывает аутентификационный ID для подключений SASL. Форма ID зависит от реально используемого механизма SASL.
-vРежим подробного вывода, диагностические сообщения выводятся на стандартный вывод.
-w passwordУказывает использовать пароль в открытом виде password для простой аутентификации. Для безопасности паролей лучше использовать -W или -y.
-WУказывает запрашивать пароль для простой аутентификации. Это значительно более безопасно, чем указывать пароль в открытом виде в командной строке (-w).
-xУказывает использовать простую аутентификацию вместо SASL. Если не указан, по умолчанию используется SASL-аутентификация.
-X authzidУказывает ID запроса авторизации для подключений SASL. authzid должен быть в одном из следующих форматов: dn:<distinguished name> или u:<username>.
-y passfileИспользует полное содержимое passfile в качестве пароля для простой аутентификации.
-Y mechУказывает используемый для аутентификации механизм SASL. Если не указан, выберет лучший из известных серверу механизмов.
-Z[Z]Пытается выполнить расширенную операцию StartTLS (Transport Layer Security). При использовании -Z и неудачном старте TLS, выполнение требуемой операции будет продолжено. При использовании -ZZ требуется успешный старт TLS.
userПользователь, указанный DN этого пользователя, заключённым в двойные кавычки, например: "cn=slimy toad,ou=people,dc=example,dc=com".

Примеры:

Изменяем userPassword для записи cn=slimy toad,ou=people,dc=example,dc=com используя rootdn в качестве DN для подсоединения. Запрашивается старый пароль, новый пароль и пароль rootdn.

ldappasswd [-H ldap://localhost] -D cn=admin,dc=example,dc=com -W -A 
 -S "cn=slimy toad,ou=people,dc=example,dc=com"

Наверх

ldapsearch

ldapsearch открывает соединение с сервером LDAP, подключается и производит поиск, используя указанные параметры. Указываемый фильтр должен соответствовать строковому представлению поисковых фильтров, определённому в RFC 4515. Если фильтр не был указан, используется фильтр по умолчанию(objectClass=*).

Если ldapsearch находит одну или несколько записей, возвращаются атрибуты, указанные как аргументы attrs. Если в списке атрибутов присутствует *, возвращаются все пользовательские атрибуты. Если присутствует +, возвращаются все операционные атрибуты. Если не было указано аргументов attrs, будут возвращены все пользовательские атрибуты (то есть подразумевается *).

Результаты ldapsearch отображаются в формате LDIF (более или менее подробный формат вывода контролируется с помощью -L -LL и -LLL).

ldapsearch  [-a never|always|search|find] [-A] [-b searchbase] [-c] [-d debuglevel]
   [-D binddn] [-e [!]ext[=extparam]] [-E [!]ext[=extparam]] [-f file] [-F prefix]
   [-h ldaphost] [-H ldapuri] [-I] [-l time] [-L[L[L]]] [-M[M]] [-n] 
   [-O security-properties] [-p ldapport] [-P 2|3] [-Q] [-R realm]
   [-s base|one|sub|children] [-S attribute] [-t[t]] [-T path] [-u] [-U authcid]
   [-v] [-w passwd] [-W] [-x] [-X authzid] [-y passwdfile] [-Y mech] [-z sizelimit] 
   [-Z[Z]] filter [attrs...]
АргументОписание
-a never|always|search|findОпределяет, как будет выполняться разыменование псевдонимов. Возможные варианты: never, always, search или find, которые, соответственно, указывают, что псевдонимы никогда не разыменовываются, всегда разыменовываются, разыменовываются при поиске или разыменовываются только при нахождении базового объекта для поиска. По умолчанию — never.
-AИзвлекать только атрибуты (без значений). Полезно, когда Вам нужно посмотреть только наличие атрибута в записи, а конкретные значения не интересуют.
-b baseИспользовать base (DN) в качестве точки начала поиска вместо определённой по умолчанию.
-c(LDAP 2.4+) продолжать после возникновения ошибки. По умолчанию после возникновения ошибки будет завершаться. Имеет смысл только в сочетании с -f (считывание информации о поисках из файла).
-d debugУстанавливает уровень отладки LDAP в debug. Чтобы эта опция имела эффект, ldapsearch должна быть скомпилирована с установленным LDAP_DEBUG.
-D binddnИспользует Distinguished Name, предъявленный в аргументе (binddn), при соединении с каталогом LDAP.
-e [!]ext[=extparam]Смотрите -E ниже.
-E [!]ext[=extparam]Указывает общие (при -e) и поисковые (при -E) расширения. '!' обозначает высокую критичность расширения.
Общие расширения:

[!]assert=<filter>	(Фильтр RFC 4515)
[!]authzid=<authzid>	("dn:<dn>" или "u:<user>")
[!]manageDSAit
[!]noop
ppolicy
[!]postread[=<attrs>]	(разделённый запятыми список атрибутов)
[!]preread[=<attrs>]	(разделённый запятыми список атрибутов)
abandon, cancel		(отказ/сброс посылок SIGINT)

Поисковые расширения:
[!]domainScope			(доменный диапазон)
[!]mv=<filter>			(фильтр значений, для которых найдено соответствие)
[!]pr=<size>[/prompt|noprompt]	(постраничный вывод результатов/запрос постраничного вывода)
[!]subentries[=true|false]	(подзаписи)
[!]sync=ro[/<cookie>]		(LDAP Sync refreshOnly)
rp[/<cookie>][/<slimit>]	(LDAP Sync refreshAndPersist)
-f fileСчитывает ряд строк из файла, выполняя по одному поисковому LDAP-запросу для каждой строки. В этом случае, заданный в командной строке фильтр рассматривается как шаблон, которым заменяется первое и единственное появление %s в строке файла. Любое другое появление символа % в шаблоне будет рассматриваться как ошибка. Если нужно включить в поисковый фильтр символ %, он должен быть закодирован как \25 (смотрите RFC 4515). Если в качестве file был передан единичный символ - , строки будут считываться со стандартного входа. Если не используется -c (только 2.4+), ldapsearch завершит работу при возвращении первого неуспешного результата поиска.
-F prefixURL-префикс для временных файлов. По умолчанию file:/path/ , где path — /var/tmp/ или указанный в аргументе -T.
-h ldaphostУказывает хост, на котором запущен ldap-сервер (по умолчанию localhost). Устаревший аргумент, используйте вместо него -H.
-H ldapuriЗаменяет -h и -p. Определяет один или несколько (разделённых пробелами или запятыми) URI, указывающих на ldap-сервер(ы) в форме scheme://host.name:port. Если не указано, значение по умолчанию ldap://localhost:389. Другой вариант: можно указать DN, который будет использоваться для нахождения соответствующего хоста (хостов) с помощью SRV-записей DNS, как определено в RFC 2782. Данный DN должен быть непустой последовательностью AVA, тип атрибута которых "dc" (domain component), и должен быть экранирован в соответствии с RFC 2396. Примеры:
# стандартный формат URI (порт по умолчанию - 389)
-H ldap://ldap.example.com

# поиск SRV-записей DNS в форме
# _ldap._tcp._example.com SRV ....
-H "dc=example,dc=com"
-IВключает интерактивный режим SASL. Запрос происходит всегда. По умолчанию запрос происходит только в случае необходимости.
-l timeУказывает ожидать до окончания поиска не более time секунд. Если time установлено в 0 (ноль), то ограничения из ldap.conf снимаются. Данное значение не может превышать любое ограничение timelimit (в slapd.conf), за исключением случая подключения от rootdn (с помощью аргумента -D).
-L[L[L]]Результаты поиска отображаются в формате LDIF. Одиночный -L указывает осуществлять вывод в формате LDIFv1. Второй L (-LL) указывает выводить без комментариев. Третий L (-LLL) отключает печать версии LDIF. По умолчанию (без -L) вывод осуществляется в расширенной версии LDIF.
-M[M]Включает элемент управления manage DSA IT. -MM делает этот элемент управления критичным.
-nДемонстрирует, что будет сделано, но реальных модификаций записей не производится. Полезно для отладки в сочетании с -v.
-O propsУказывает свойства безопасности SASL.
-p ldapportУказывает альтернативный TCP-порт, на котором ожидает подключения ldap-сервер. Устаревший аргумент, используйте вместо него -H.
-P 2|3Указывает, какую версию протокола LDAP использовать. По умолчанию — 3 (LDAPv3)
-QВключает тихий режим SASL. Запрос не происходит никогда.
-R realmУказывает область (realm) аутентификационного ID для подключений SASL. Форма realm зависит от реально используемого механизма SASL.
-s scopeУказывает диапазон поиска. Может быть base, one, sub или children и указывает, соответственно, поиск в базе поиска, на один уровень ниже или во всём поддереве. По умолчанию — sub. Примечание: диапазон children требует расширения функции подчинения LDAPv3.
-S attributeСортировать возвращаемые записи на основании указанного атрибута. По умолчанию возвращаемые записи не сортируются. Если значение атрибута — строка нулевой длины (""), записи сортируются по компонентам их Distinguished Name. Дополнительную информацию смотрите в ldap_sort(3). Имейте в виду, что по умолчанию ldapsearch выводит записи по мере их получения. Использование опции -S изменяет это поведение, приводя к тому, что сначала все записи получаются, затем сортируются, а затем выводятся.
-tЗаписывает извлечённые значения в набор временных файлов. Полезно для работы с не-ASCII значениями, такими как jpegPhoto или audio. Второй t (-tt) указывает сохранять все значения во временные файлы. По умолчанию файлы располагаются в /var/tmp.
-T pathУказывает путь к директории, которая будет использована для хранения файлов, создаваемых при использовании аргумента -t (применяется для переопределения значения по умолчанию /var/tmp).
-uВключает в вывод удобную для пользователя форму Distinguished Name (DN).
-U authcidУказывает аутентификационный ID для подключений SASL. Форма ID зависит от реально используемого механизма SASL.
-vРежим подробного вывода — диагностические сообщения выводятся на стандартный вывод.
-w passwordУказывает использовать пароль в открытом виде password для простой аутентификации. Для безопасности паролей лучше использовать -W или -y.
-WУказывает запрашивать пароль для простой аутентификации. Это значительно более безопасно, чем указывать пароль в открытом виде в командной строке (-w).
-xУказывает использовать простую аутентификацию вместо SASL. Если не указан, по умолчанию используется SASL-аутентификация.
-X authzidУказывает ID запроса авторизации для подключений SASL. authzid должен быть в одном из следующих форматов: dn:<distinguished name> или u:<username>
-y passfileИспользует полное содержимое passfile в качестве пароля для простой аутентификации.
-Y mechУказывает используемый для аутентификации механизм SASL. Если не указан, выберет лучший из известных серверу механизмов.
-z sizeполучать не более size записей за операцию поиска. Если size установлено в 0 (ноль), то ограничения из ldap.conf снимаются. Данное значение не может превышать любое ограничение sizelimit (в slapd.conf), за исключением случая подключения от rootdn (с помощью аргумента -D).
-Z[Z]Пытается выполнить расширенную операцию StartTLS (Transport Layer Security). При использовании -ZZ, команда требует успешного выполнения операции.
filterОпределяет поисковый фильтр, который будет использоваться. Он заключается в двойные кавычки и ограничивается скобками.
attrsРазделённый пробелами список атрибутов, которые требуется вернуть.

Примеры:

В следующем примере будет осуществляться поиск на нескольких уровнях (значение аргумента -s по умолчанию sub) записей с атрибутом mail, почтовый адрес в значении которого содержит smith в любом месте, затем отобразить атрибуты sn, cn и mail и вывести всё это в формате LDIFv1 без комментариев. Аргумент -LL включен, чтобы выводимое LDIF-содержимое можно было перенаправить в файл и затем обработать его с помощью, скажем, ldapmodify.

ldapsearch -H ldap://ldap.example.com -LL -b ou=people,dc=example,dc=com 
 "(mail=*smith*)" sn cn mail

# при использовании стандартного перенаправления результаты запроса могут быть записаны в файл
# > /tmp/search1.ldif

Наверх

ldapwhoami

Уже совсем скоро (One Day Real Soon Now™)

Наверх

slapacl

Обновлено для 2.4. slapacl позволяет пользователю проверить возможность доступа от имени определённого DN подключения (-b) к указанным атрибутам, применяя текущие директивы access в файле slapd.conf. Данной утилите нужен доступ только на чтение к файлу slapd.conf и DIT, поэтому она может использоваться при запущенном slapd.

slapacl -b DN [-d level] [-D authcDN | -U authcID] [-f slapd.conf] [-F confdir] [-o name[=value]] [-u] [-v] [-X authzID | -o authzDN=DN] [attr[/access][:value]] [...]

АргументОписание
-b DNDN пользователя, от имени которого предполагается подключаться к DIT. Запись извлекается из DIT и, следовательно, должна существовать. DN тестируется по соответствующим ACL (глобальным и специфичным для DIT), чтобы определить, будут ли доступны указанные атрибуты согласно назначенным на них правилам доступа. Также смотрите -u.
-d levelВключить отладочные сообщения согласно указанному уровню level.
-D authcDNУказывает DN, который будет использоваться в качестве идентификационной сущности в ходе тестовой сессии при выборе соответствующего условия <by> в списках контроля доступа.
-f slapd.confОпределяет местоположение slapd.conf. По умолчанию — [fc] /etc/openldap/slapd.conf или [bsd] /usr/local/etc/openldap/slapd.conf.
-F confdirОпределяет конфигурационную директорию cn=config. Если указаны оба аргумента -f и -F, конфигурационный файл (указанный аргументом -f) будет прочтён и переконвертирован в формат cn=config и записан в директорию, указанную аргументом -F. Если не было указано ни одного из аргументов -f и -F, OpenLDAP сначала попытается прочитать конфигурационную директорию по умолчанию ([fc] /etc/opendlap/slapd.d, [bsd] /usr/local/etc/openldap/slapd.d) и если таковой не существует, вернётся к использованию конфигурационного файла по умолчанию (slapd.conf). Если существует конфигурационная директория в правильном формате, то конфигурационный файл игнорируется. Если поддерживается и задан режим холостого прогона (аргумент -u, поддерживается большинством утилит, но не slapd), переконвертации не произойдёт.
-o name[=value]Указывает опции slapd и, при необходимости, их значения. Примеры:
syslog=subsystems  (`-s' в slapd)
syslog-user=user   (`-l' в slapd)

Возможные опции/значения применительно к slapacl:

 authzDN
 domain
 peername
 sasl_ssf
 sockname
 sockurl
 ssf
 tls_ssf
 transport_ssf
-uНе извлекать запись из базы данных. В этом случае, если запись не существует, используется подставная запись с DN, заданным в опции -b, без атрибутов. Как следствие, те правила, которые зависят от содержимого целевого объекта, не будут вести себя так, как с реальным объектом. Заданный в опции -b DN всё же будет использоваться для выбора правил, которые будут применяться, поэтому он должен быть в контексте именования конфигурируемой базы данных. Смотрите также -b.
-vВключить подробный режим.
-X authzIDУказывает ID, который будет отображаться в DN посредством правил authz-regexp или authz-rewrite; несовместимо с -D.
attr[/access][:value] [...]Последовательность атрибутов, каждый из которых представляет собой строку, заключённую в кавычки, как показано в примере:
# проверяем, возможно ли прочитать 
# organizationName (o) со значением 'Example, inc.'
"o/read:Example, Inc."

Наверх

slapadd

Обновлено для 2.4+. slapadd используется для добавления записей, указанных в формате LDIF в базу данных LDAP. ПРИ ВЫПОЛНЕНИИ ЭТОЙ КОМАНДЫ LDAP НЕ ДОЛЖЕН БЫТЬ ЗАПУЩЕН, В ПРОТИВНОМ СЛУЧАЕ МОЖЕТ ПРОИЗОЙТИ СЕРЬЁЗНОЕ РАЗРУШЕНИЕ БАЗЫ ДАННЫХ. Команда применяет LDIF к базе данных, определяемой по номеру базы данных или суффиксу. Входной LDIF считывается со стандартного входа, либо из указанного файла (аргумент -l).

ПЕРЕД ЗАПУСКОМ ОСТАНОВИТЕ SLAPD. slapadd предназначена для принудительного занесения LDIF в базу данных, она не проверяет существование вышестоящих записей перед добавлением записи, не выполняет проверку пользователя и системной схемы данных и не соблюдает операционные атрибуты (такие как createTimeStamp и modifiersName).

slapadd [-b suffix] [-c] [-d level] [-f slapd.conf] 
        [-F confdir] [-g] [-j lineno] [-l ldif-file]
        [-n dbnum]  [-o  name[=value]]
        [-q] [-s] [-S SID] [-u dryrun] [-v] [-w]
АргументОписание
-b suffixИспользовать указанный суффикс для определения базы данных, в которую будут добавляться записи. -b не может использоваться совместно с опцией -n.
-cВключить режим продолжения (игнорирования ошибок).
-d levelВключить отладочные сообщения согласно указанному уровню level.
-f slapd.confОпределяет местоположение slapd.conf. По умолчанию — [fc] /etc/openldap/slapd.conf или [bsd] /usr/local/etc/openldap/slapd.conf.
-F confdirОпределяет конфигурационную директорию cn=config. Если указаны оба аргумента -f и -F, конфигурационный файл (указанный аргументом -f) будет прочтён и переконвертирован в формат cn=config и записан в директорию, указанную аргументом -F. Если не было указано ни одного из аргументов -f и -F, OpenLDAP сначала попытается прочитать конфигурационную директорию по умолчанию ([fc] /etc/opendlap/slapd.d, [bsd] /usr/local/etc/openldap/slapd.d) и если таковой не существует, вернётся к использованию конфигурационного файла по умолчанию (slapd.conf). Если существует конфигурационная директория в правильном формате, то конфигурационный файл игнорируется. Если поддерживается и задан режим холостого прогона (аргумент -u, поддерживается большинством утилит, но не slapd), переконвертации не произойдёт.
-gОтключить подчинённые связи. Будет обработана только указанная база данных, а связанные с ней подчинённые (если они вообще есть) — нет.
-j linenoПерейти к строке с указанным lineno (номером строки) в LDIF-файле перед началом обработки записей. Это позволяет продолжить загрузку, прерванную из-за ошибок во входном LDIF, после исправления ошибок.
-l ldif-fileСчитывать LDIF из указанного файла вместо стандартного входа.
-n dbnumДобавлять записи в базу данных с порядковым номером dbnum согласно их перечислению в конфигурационном файле. -n не может использоваться совместно с опцией -b.
-o name[=value]Указывает опции slapd и, при необходимости, их значения. Примеры:
syslog=subsystems  (`-s' в slapd)
syslog-user=user   (`-l' в slapd)
-qВключает быстрый режим (с меньшим количеством проверок целостности). Делается меньше проверок целостности во входных данных, и вообще не делается проверок целостности при записи в базу данных. Сокращает время загрузки, но если во время загрузки возникают какие-либо ошибки или сбои, с получившейся базой данных невозможно будет работать.
-sОтключает проверку схемы данных. Эта опция предназначена для использования при загрузке баз данных, содержащих специальные объекты, такие как раздробленные объекты на неполных репликах. Загрузка же нормальных, но не удовлетворяющих схеме данных объектов, может привести к неработоспособности DIT, поэтому не рекомендуется.
-S SIDЗадаёт ID сервера, который используется для генерации entryCSN. Также используется для генерации contextCSN при заданном аргументе `-w'. По умолчанию — 0.
-uТолько проверка правильности конфигурации (slapd.conf или slapd.d — смотрите аргументы -f и -F). По умолчанию утилита будет проверять наличие и целостность баз данных, определённых в разделах database конфигурации. Данный флаг подавляет такие проверки. Чтобы проверить только одну конкретную базу данных используйте флаг -n. Кроме того, использование флага -q подавляет переконвертацию файла slapd.conf в cn=config если используются одновременно флаги -f и -F. По существу, при использовании флага -q утилита выполняет только проверочные функции.
-vВключить подробный режим.
-w 2.3+. Записывать контекстную информацию syncrepl. После добавления всех записей обновляется contextCSN, куда записывается наибольший CSN в базе данных. Подразумевается, что LDIF-файл содержит атрибуты entryCSN (были созданы в последних версиях 2.2 DIT). Использование этой опции позволяет потребителям генерировать SyncCookie, минимизируя тем самым время начального этапа синхронизации при репликации в стиле syncrepl. Смотрите также синхронизацию syncrepl.

Наверх

slapauth

Уже совсем скоро (One Day Real Soon Now™)

Наверх

slapcat

Обновлено для 2.4. ПЕРЕД ЗАПУСКОМ ОСТАНОВИТЕ SLAPD — хотя в последних версиях (2.3+) OpenLDAP утверждается, что при использовании механизмов манипуляции данными HDB или BDB slapcat можно безопасно выполнять при запущенном slapd. slapcat используется для генерации LDIF, основанных на содержимом базы данных LDAP. Она открывает базу данных, определяемую по номеру базы данных или суффиксу, и пишет соответствующий LDIF на стандартный вывод или в указанный файл (аргумент -l). При выполнении этой команды OpenLDAP не должен быть запущен.

Сгенерированный данной утилитой LDIF может быть использован slapadd. Поскольку записи располагаются в порядке их нахождения в базе данных, а не в порядке их взаимной подчинённости, их нельзя загрузить с помощью ldapadd без переупорядочивания.

slapcat	[-a filter]  [-b suffix] [-c] [-d level] 
        [-f slapd.conf] [-F confdir] [-g] [-l ldif-file]
        [-n dbnum] [-o name[=value]] [-s subtree-dn] [-v]
АргументОписание
-a filterДелать дамп только записей, соответствующих указанному фильтру (filter). Например,
slapcat -a \
  "(!(entryDN:dnSubtreeMatch:=ou=People,dc=example,dc=com))"
сделает дамп всей базы данных "dc=example,dc=com", кроме поддерева "ou=People,dc=example,dc=com".
-b suffixИспользовать указанный суффикс suffix (как определено в директиве suffix slapd.conf) для определения базы данных, для которой требуется сгенерировать вывод. -b не может использоваться совместно с опцией -n.
-cВключить режим продолжения (игнорирования ошибок).
-d levelВключить отладочные сообщения согласно указанному уровню level.
-f slapd.confОпределяет местоположение slapd.conf. По умолчанию — [fc] /etc/openldap/slapd.conf или [bsd] /usr/local/etc/openldap/slapd.conf.
-F confdirОпределяет конфигурационную директорию cn=config. Если указаны оба аргумента -f и -F, конфигурационный файл (указанный аргументом -f) будет прочтён и переконвертирован в формат cn=config и записан в директорию, указанную аргументом -F. Если не было указано ни одного из аргументов -f и -F, OpenLDAP сначала попытается прочитать конфигурационную директорию по умолчанию ([fc] /etc/opendlap/slapd.d, [bsd] /usr/local/etc/openldap/slapd.d) и если таковой не существует, вернётся к использованию конфигурационного файла по умолчанию (slapd.conf). Если существует конфигурационная директория в правильном формате, то конфигурационный файл игнорируется. Если поддерживается и задан режим холостого прогона (аргумент -u, поддерживается большинством утилит, но не slapd), переконвертации не произойдёт.
-gОтключить подчинённые связи. Будет обработана только указанная база данных, а связанные с ней подчинённые (если они вообще есть) — нет.
-l ldif.fileЗаписывать LDIF в указанный файл вместо стандартного вывода.
-n dbnumГенерировать вывод для базы данных с порядковым номером dbnum согласно их перечислению в конфигурационном файле. -n не может использоваться совместно с опцией -b.
-o name[=value]Указывает опции slapd и, при необходимости, их значения. Примеры:
syslog=subsystems  (`-s' в slapd)
syslog-user=user   (`-l' в slapd)
-qВключает быстрый режим (с меньшим количеством проверок целостности). Делается меньше проверок целостности во входных данных, и вообще не делается проверок целостности при записи в базу данных. Сокращает время загрузки, но если во время загрузки возникают какие-либо ошибки или сбои, с получившейся базой данных невозможно будет работать.
-s subtree-dnДелать дамп только записей поддерева, указанного данным DN. Работает как `-b subtree-dn', если не задавались опции -b или -n.
-vВключить подробный режим.

Наверх

slapd

Обновлено для 2.4+. slapd — это автономный демон OpenLDAP. Обычно он запускается с использованием скрипта ([fc] /etc/rc.d/init.d/slapd или [fbsd] /usr/local/rc.d/slapd с ключевыми словами stop|start|restart). slapd обычно устанавливается в [fc] /usr/lib/slapd или [fbsd] /usr/local/libexec/slapd. Ниже приводятся аргументы для управления работой демона.

slapd [-[4|6]] [-c cookie] [-d debug-level] [-f slapd-config-file]
      [-F slapd-config-directory] [-g group] [-h URLs] 
      [-l syslog-local-user] [-n service-name] [-s syslog-level]
      [-r directory] [-T {acl|add|auth|cat|dn|index|passwd|test}]
      [-u user]  
АргументОписание
-4|6Указывает, что запросы будут приниматься только на интерфейсах IPv4 (4), либо только на IPv6 (6). По умолчанию запросы принимаются на всех сетевых интерфейсах на стандартных портах ldap (389) и ldaps (636) на всех поддерживаемых протоколах.
-c cookieОпция -c позволяет принудительно запустить репликацию с определённой пользователем точки, путём принудительной посылки определённого значения SyncCookie на открытое соединение синхронизации, в отличие от поведения по умолчанию, когда значение последнего сохранённого SyncCookie считывается при загрузке из основной базы данных. Куки — это разделённый запятыми список пар имя=значение. В качестве имени параметра сейчас поддерживаются rid и csn. rid идентифицирует директиву syncrepl в slapd.conf по соответствующему параметру rid. csn — это порядковый номер изменения (commit sequence number), обычно являющийся последним полученным от поставщика значением.
-d debug-levelУстанавливает уровень отладки в указанный debug-level. debug-level — это число, принимающее значения, аналогичные определённым для директивы loglevel в slapd.conf. Так, -d -1 включает максимальную диагностику. Когда slapd запускается из командной строки, обычно он отделяется от консоли/tty, инициировавшей данную команду. Когда используется аргумент -d, даже если его значение 0, slapd не будет отделяться от вызвавшего его терминала, таким образом все сообщения об ошибках будут выводиться прямо в терминал/консоль/tty, делая данную функцию бесценной для быстрой диагностики проблем с загрузкой. Чтобы выполнять отделение от терминала/консоли/tty, но при этом изменять loglevel, используйте аргумент -s.
-f slapd.confОпределяет местоположение slapd.conf. По умолчанию — [fc] /etc/openldap/slapd.conf или [bsd] /usr/local/etc/openldap/slapd.conf.
-F confdirОпределяет конфигурационную директорию cn=config. Если указаны оба аргумента -f и -F, конфигурационный файл (указанный аргументом -f) будет прочтён и переконвертирован в формат cn=config и записан в директорию, указанную аргументом -F. Если не было указано ни одного из аргументов -f и -F, OpenLDAP сначала попытается прочитать конфигурационную директорию по умолчанию ([fc] /etc/opendlap/slapd.d, [bsd] /usr/local/etc/openldap/slapd.d) и если таковой не существует, вернётся к использованию конфигурационного файла по умолчанию (slapd.conf). Если существует конфигурационная директория в правильном формате, то конфигурационный файл игнорируется. Если поддерживается и задан режим холостого прогона (аргумент -u, поддерживается большинством утилит, но не slapd), переконвертации не произойдёт.
-g groupУказывает имя или ID группы, от которой будет запущен OpenLDAP. На большинстве систем по умолчанию это будет группа ldap. OpenLDAP загружается от root для того чтобы зарезервировать свои привилегированные порты (389 и 636), убеждается, что у slapd.conf корректные уровни привилегий (меняя их по мере необходимости), а затем снижает привилегии, переходя на использование заданных учётных записей group и, возможно, user (-u user). Если задан аргумент -r, то файл групп ([fc &] /etc/group) должен находиться в пределах заданной структуры директорий.
-h URLsОпределяет IP-адреса и порты, которые будут использоваться OpenLDAP при инициализации своих сокетов для подсоединений и ожидания запросов. По умолчанию это только порт 389 на всех поддерживаемых сетевых интерфейсах (IPv4 и/или IPv6), что соответствует -h ldap:///. Если система настроена на оба вида сетевых протоколов, то для принудительного приёма запросов только на интерфейсах IPv4 или IPv6 можно использовать аргументы -4 и -6. Аргумент -h заменяет создаваемые по умолчанию соединения согласно ldap URL и может использоваться для принудительного ожидания соединений на портах ldaps. Аргумент -h принимает один или несколько URL, разделённых пробелами. Если передаётся несколько URL, они должны заключаться в двойные кавычки ("). Общий формат URL scheme://[host[:port]]/. Здесь host может быть IP-адресом (IPv4 или IPv6) или именем хоста. Если IP-адрес IPv6, он должен заключаться в квадратные скобки ([]). Если в качестве host указан 0.0.0.0, соединения будут ожидаться на всех интерфейсах только с IPv4 адресами, эквивалентная форма для адресов IPv6 — [::]. Если не был указан номер порта, то при URL со схемой ldap будет открыт порт 389, а при URL со схемой ldaps будет открыт порт 636. Примеры:
# соединения на всех интерфейсах с адресами только IPv4, порт по умолчанию 389
slapd -h ldap://0.0.0.0/
# функционально эквивалентно
slapd -4
# соединения на всех интерфейсах с адресами только IPv6, порт по умолчанию 389
slapd -h ldap://[::]/
# функционально эквивалентно
slapd -6

# соединения на IPv4 и IPv6, только 2000 порт
slapd -h ldap://:2000/
# соединения на IPv4 и IPv6, порты 389 и 2000
slapd -h "ldap:/// ldap://:2000/"
# соединения на IPv4 и IPv6, порт 389, а также на IPv4, только 2000 порт
slapd -h "ldap:/// ldap://0.0.0.0:2000/"

# соединения на всех интерфейсах с адресами IPv4 и IPv6, по умолчанию только 636 порт
slapd -h ldaps:///

# соединения на всех интерфейсах с адресами IPv4 и IPv6, порты по умолчанию 389 и 636
slapd -h "ldap:/// ldaps:///"
# соединения на IPv4 и IPv6, порт по умолчанию 389
# и ldaps на всех интерфейсах с адресами только IPv6, порт 2001
slapd -h "ldap:/// ldaps://[::]:2001/"
-l syslog-local-userПо умолчанию OpenLDAP производит журналирование с помощью демона syslogd в пользовательский канал local4. Данный аргумент позволяет использовать другой канал, который должен быть либо user, либо daemon, либо из промежутка local0 - local7. Примеры:
slapd -l local5

# чтобы syslog принимал поток из local5
# отредактируйте /etc/syslog.conf
local5.* /var/log/ldap.log

# а затем перезапустите syslogd
[fc] /etc/init.d/syslog restart
[bsd]killall -HUP syslogd
-n service-nameУказывает имя службы демона openldap для журналирования и других целей. По умолчанию — argv[0], то есть slapd. Если, к примеру, нужно писать в журнал от имени ldap, используйте -n ldap.
-r directoryУказывает запускать slapd в режиме chroot, используя заданную директорию directory как базу chroot. Это делается после открытия портов и проверки прав на конфигурационные файлы или директории, но до считывания конфигурации из файла или директории и инициализации каких-либо механизмов манипуляции данными. Данную опцию следует использовать в сочетании с опциями -u и -g. Все файлы и директории, используемые OpenLDAP в данном режиме, будут добавлять directory к заданным путям перед тем как получить доступ к запрашиваемым файлам, таким как базы данных, журналы и другие операционные файлы. Следует отметить, что запрос chroot выполняется перед тем, как OpenLDAP переключается на заданных user и group, таким образом, директория chroot должна включать копии файлов безопасности, содержащих пользователей и группы (смотрите описания аргументов -u и -g).
-s syslog-levelУстанавливает уровень отладочных сообщений, журналируемых через syslogd. Замещает значение директивы loglevel в slapd.conf (или добавляет, если таковая отсутствовала). В отличие от аргумента -d, -s позволяет демону slapd отделиться от терминала после загрузки.
-T {a|c|d|i|p|t|acl|auth}Запуск в режиме инструмента (утилиты). Параметр аргумента указывает, в качестве какого инструмента запускаться (в порядке, указанном в прототипе аргумента) — slapadd, slapcat, slapdn, slapindex, slappasswd, slaptest, slapacl или slapauth. Данный аргумент должен указываться самым первым, тогда все остальные аргументы будут интерпретироваться как аргументы соответствующих программ slap-инструментов. Данная опция предназначена только для ситуаций, когда символические ссылки не поддерживаются, либо их невозможно использовать.
-u userУказывает имя или ID пользователя, от которого будет запущен OpenLDAP. На большинстве систем по умолчанию это будет пользователь ldap. OpenLDAP загружается от root для того, чтобы зарезервировать свои привилегированные порты (389 и 636), убеждается, что у slapd.conf корректные уровни привилегий (меняя их по мере необходимости), а затем снижает привилегии, переходя на использование заданных учётных записей user и, возможно, group (-g group). Если задан аргумент -r, то файлы (базы данных) password/shadow ([fc] /etc/passwd, /etc/shadow [bsd] /etc/passwd/, /etc/master.passwd, /etc/pwd.db and /etc/spwd.db ) должны находиться в пределах заданной структуры директорий.

Наверх

slapdn

Уже совсем скоро (One Day Real Soon Now™)

Наверх

slapindex

Обновлено для 2.4+. ПЕРЕД ЗАПУСКОМ ОСТАНОВИТЕ SLAPD. slapindex используется для пересоздания индексов LDAP на основании текущего содержимого базы данных. Она открывает указанную базу данных, определяемую по номеру базы данных или суффиксу, и обновляет индексы для всех значений всех атрибутов всех записей, индексирование которых настроено в slapd.conf.

slapindex  [-b  suffix] [-c] [-d level] [-f slapd.conf] 
           [-F confdir] [-g] [-n dbnum] [-o name[=value]]
           [-q] [-t] [-v] [attr] [...]
АргументОписание
-b suffixИспользовать указанный суффикс для определения базы данных, для которой требуется сгенерировать вывод. -b не может использоваться совместно с опцией -n.
-cВключить режим продолжения (игнорирования ошибок).
-d levelВключить отладочные сообщения согласно указанному уровню level.
-f slapd.confОпределяет местоположение slapd.conf. По умолчанию — [fc] /etc/openldap/slapd.conf или [bsd] /usr/local/etc/openldap/slapd.conf.
-F confdirОпределяет конфигурационную директорию cn=config. Если указаны оба аргумента -f и -F, конфигурационный файл (указанный аргументом -f) будет прочтён и переконвертирован в формат cn=config и записан в директорию, указанную аргументом -F. Если не было указано ни одного из аргументов -f и -F, OpenLDAP сначала попытается прочитать конфигурационную директорию по умолчанию ([fc] /etc/opendlap/slapd.d, [bsd] /usr/local/etc/openldap/slapd.d) и если таковой не существует, вернётся к использованию конфигурационного файла по умолчанию (slapd.conf). Если существует конфигурационная директория в правильном формате, то конфигурационный файл игнорируется. Если поддерживается и задан режим холостого прогона (аргумент -u, поддерживается большинством утилит, но не slapd), переконвертации не произойдёт.
-gОтключить подчинённые связи. Будет обработана только указанная база данных, а связанные с ней подчинённые (если они вообще есть) — нет.
-n dbnumГенерировать вывод для базы данных с порядковым номером dbnum согласно их перечислению в конфигурационном файле. -n не может использоваться совместно с опцией -b.
-o name[=value]Указывает опции slapd и, при необходимости, их значения. Примеры:
syslog=subsystems  (`-s' в slapd)
syslog-user=user   (`-l' в slapd)
-qВключает быстрый режим (с меньшим количеством проверок целостности). Делается меньше проверок целостности во входных данных, и вообще не делается проверок целостности при записи в базу данных. Сокращает время загрузки, но если во время загрузки возникают какие-либо ошибки или сбои, с получившейся базой данных невозможно будет работать.
-tВключить режим усечения (truncate mode). Индексная база данных усекается (очищается) перед началом индексирования записей. Может использоваться только совместно с быстрым режимом (-q).
-vВключить подробный режим.
attrПо умолчанию индексы строятся на основании настроек в файле slapd.conf, но можно задать один или несколько атрибутов в командной строке.

Up Arrow

slappasswd

slappasswd используется для генерации парольных строк с использованием различных алгоритмов. Эти парольные строки могут использоваться в файлах, таких как slapd.conf или LDIF (в значениях атрибутов userPassword или authPassword). Данная утилита может использоваться для создания значения rootpw. О том, как добавить пароль в файл, смотрите в примерах ниже.

slappasswd  [-v] [-u] [-s secret|-T file] [-h hash] [-c salt-format]
АргументОписание
-c salt-formatОпределяет формат "соли", используемой при генерации паролей {CRYPT} (DES). Передаваемая с аргументом строка должна быть заключена в кавычки, быть в формате sprintf, и может включать одно (и только одно) преобразование %s. Данное преобразование будет замещено строкой случайных символов из набора [A-Za-z0-9./]. Например, "%.2s" требует предоставления двух символов "соли", а "$1$%.8s" сообщает некоторым версиям crypt(3) использовать алгоритм MD5 и предоставлять 8 случайных символов "соли". Значение по умолчанию — "%s", требующее предоставлять 31 символ "соли". Дополнительную информацию можно получить в man-странице crypt на Вашей платформе.
-h hash

Если -h не указан, по умолчанию при генерации userPassword (и authPassword) будет использоваться схема {SSHA}. Если указан -h, аргумент может принимать одно из следующих значений схемы (согласно RFC 2307): {CRYPT}, {MD5}, {SMD5}, {SSHA}, {SHA} и {CLEARTEXT}. Примечание: в зависимости от используемой оболочки может понадобиться экранировать фигурные скобки {}, в которые заключено название схемы.

{SHA} и {SSHA} используют алгоритм SHA-1 (FIPS 160-1), последний из них с "солью".

{MD5} и {SMD5} используют алгоритм MD5 (RFC 1321), последний из них с "солью".

{CRYPT} использует библиотеку crypt(3) для генерации строк DES.

{CLEARTEXT} означает, что будет использован пароль в открытом виде (кодирования пользовательского пароля не производится — довольно полезная вещь).

-s secretСекретная последовательность (secret), которая будет захэширована или закодирована с помощью указанного алгоритма хэширования (-h). Опции -s и -T несовместимы. Если не указано ни одной из опций -s или -T, утилита будет дважды запрашивать секретную последовательность для хэширования, что значительно безопаснее, чем указывать секретную последовательность с помощью опции -s, и безопаснее, чем использовать опцию -T.
-T /path/to/fileИспользует полное содержимое файла /path/to/file в качестве секретной последовательности, которая будет захэширована или закодирована с помощью указанного алгоритма хэширования (-h). Опции -s и -T несовместимы. Если не указано ни одной из опций -s или -T, утилита будет дважды запрашивать секретную последовательность для хэширования, что значительно безопаснее, чем указывать секретную последовательность с помощью опции -s, и безопаснее, чем использовать опцию -T.
-uГенерировать значения для атрибута userPassword, использующегося во многих объектных классах, таких как inetOrgPerson, organization, organizationalUnit, в формате, определённом в RFC 2307 (поведение по умолчанию). Будущие версии могут по умолчанию генерировать альтернативные синтаксисы, и данная опция представлена для совместимости с будущими версиями.
-vВключить подробный режим.

Примеры slappasswd

Генерация пароля SSHA для использования в качестве rootpw (в slapd.conf), либо для использования в LDIF-файле для атрибутов userPassword или authPassword.

# не требуется никаких опций
slappasswd

# дважды запрашивается пароль, затем выводится 
{SSHA}kjhfhfehflejhfvlldkl

# сохранение в файл с помощью стандартного перенаправления
slapppasswd > /tmp/slappassword

# генерация {SSHA} хэша от пароля secret
slappasswd -s secret

# генерация {MD5) хэша от пароля secret
slappasswd -s secret -h {MD5}

Для того, чтобы поместить вывод в файл LDIF или slapd.conf, сохраните его в другой файл, а затем скопируйте и вставьте его в соответствующий файл, если Вы используете GUI-редактор. Если используется vi, нужно перейти к тому месту в файле, куда требуется вставить пароль, а затем используйте :r !slappasswd [opts] — выполнится команда и её вывод будет вставлен в редактируемый файл в место последней позиции курсора. Альтернативный способ: сохранить вывод slappasswd в файл, в vi перейти к тому месту, куда требуется вставить пароль и выполнить :r /path/to/file — содержимое файла будет вставлено в место последней позиции курсора.

Наверх

slaptest

slaptest может использоваться для проверки конфигурационного файла slapd.conf, переконвертации файла slapd.conf в OLC (cn=config) и файлов .schema в файлы .ldif для их последующего использования в конфигурации OLC (cn=config). Она открывает указанный конфигурационный файл, проверяет синтаксис директив, в том числе специфичных для конкретных механизмов манипуляции данными и наложений, и выводит результаты проверки. По умолчанию утилита проверяет также базы данных, но эти проверки можно подавить с помощью флага -u. Данная утилита является предпочтительным методом переконвертации из slapd.conf в конфигурацию OLC (cn=config) (смотрите примеры), однако для этой цели может быть использована любая утилита, поддерживающая флаги -f и -F, например slapdadd.

slaptest  [-d  level] [-f slapd.conf] [-F confdir] 
          [-n dbnum] [-o name[=value]] [-Q] [-u] [-v]
АргументОписание
-d levelВключает отладочные сообщения согласно указанному уровню level.
-f slapd.confОпределяет местоположение slapd.conf. По умолчанию — [fc] /etc/openldap/slapd.conf или [bsd] /usr/local/etc/openldap/slapd.conf.
-F confdirОпределяет конфигурационную директорию cn=config. Если указаны оба аргумента -f и -F, конфигурационный файл (указанный аргументом -f) будет прочтён и переконвертирован в формат cn=config и записан в директорию, указанную аргументом -F. Если не было указано ни одного из аргументов -f и -F, OpenLDAP сначала попытается прочитать конфигурационную директорию по умолчанию ([fc] /etc/opendlap/slapd.d, [bsd] /usr/local/etc/openldap/slapd.d) и если таковой не существует, вернётся к использованию конфигурационного файла по умолчанию (slapd.conf). Если существует конфигурационная директория в правильном формате, то конфигурационный файл игнорируется. Если поддерживается и задан режим холостого прогона (аргумент -u, поддерживается большинством утилит, но не slapd), переконвертации не произойдёт.
-n dbnumВыполняется нормальная проверка синтаксиса всего файла slapd.conf (включая директивы для конкретных типов баз данных и наложений), после чего выполняется тестирование на наличие и целостность только базы данных с номером dbnum. Базы данных нумеруются последовательно, начиная с 0, в том порядке, в котором они определены в файле slapd.conf, таким образом, для тестирования базы данных, определённой во втором разделе database, используйте -n 1.
-o name[=value]Указывает опции/флаги slapd и, при необходимости, их значения. Примеры:
syslog=subsystems  (эквивалентно использованию `-s' в slapd)
syslog-user=user   (эквивалентно использованию `-l' в slapd)
-QТихий режим. Выводится только окончательный код возврата, показывающий успешное (0) или неуспешное выполнение операции.
-uТолько проверка правильности конфигурации (slapd.conf или slapd.d — смотрите аргументы -f и -F). По умолчанию утилита будет проверять наличие и целостность баз данных, определённых в разделах database конфигурации. Данный флаг подавляет такие проверки. Чтобы проверить только одну конкретную базу данных используйте флаг -n. Кроме того, использование флага -q подавляет переконвертацию файла slapd.conf в cn=config если используются одновременно флаги -f и -F. По существу, при использовании флага -u утилита выполняет только проверочные функции.
-vПодробный режим. Выводится информация о всех ошибках и сбоях.

Примеры

Простая проверка slapd.conf (или директории slapd.d при её наличии) в стандартном месте расположения, подавляются проверки наличия и целостности всех баз данных .

slaptest -u

Полная проверка slapd.conf (или директории slapd.d при её наличии) и всех баз данных с выводом подробных сообщений:

slaptest -v

Полная проверка конфигурационного файла (slapd.conf.test) и всех баз данных с выводом подробных сообщений:

slaptest -f slapd.conf.test -v

Полная проверка slapd.conf или cn=config, а также проверка наличия и целостности только 0-й базы данных (которой будет база данных cn=config, если в конфигурации указывалось её определение) с выводом подробных сообщений:

slaptest -n 0 -v

Конвертация slapd.conf в cn=config в стандартном месте расположения директории slapd.d:

[fc]slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d -u
[bsd]slaptest -f /usr/local/etc/openldap/slapd.conf -F /usr/local/etc/openldap/slapd.d -u

Конвертация файла .schema в файл .ldif, пригодный для загрузки в конфигурацию OLC (cn=config):

Это грубоватый, но несложный процесс детально описывается здесь.

Наверх



Проблемы, комментарии, предположения, исправления (включая битые ссылки) или добавления? Пожалуйста, выделите время в потоке жизни, чтобы написать нам, вебмастеру или в службу поддержки. Оставшийся день Вы проведёте с чувством удовлетворения.

Нашли ошибку в переводе? Сообщите переводчикам!

Copyright © 1994-2017 ZyTrax, Inc. Все права защищены. Последнее изменение страницы: 17 ноября 2016 г.
Переведено участниками проекта Pro-LDAP.ru в 2011-2014 г.