man/ldapsearch

Материал из Xgu.ru

Перейти к: навигация, поиск


ldapsearch • man/ldapsearch • man/orig/ldapsearch • Пример использования ldapsearch Перевод: Игорь Чубин
Оригинал: ldapsearch(1)

Эта страница является переводом официальной man-страницы программы ldapsearch, предназначенной для поиска информации в LDAP-каталоге.


Содержание

[править] Имя

ldapsearch - инструмент для поиска информации в LDAP

[править] Синтаксис

ldapsearch [-n] [-u] [-v] [-t] [-A] [-L[L[L]]] [-M[M]] [-d debuglevel] [-f file] [-D binddn] [-W] [-w passwd] [-y passwdfile] [-H ldapuri] [-h ldaphost] [-p ldapport] [-P 2|3] [-b searchbase] [-s base|one|sub|children] [-a never|always|search|find] [-l timelimit] [-z sizelimit] [-O security-properties] [-I] [-Q] [-U authcid] [-R realm] [-x] [-X authzid] [-Y mech] [-Z[Z]] filter [attrs...]

[править] Описание

ldapsearch это интерфейс к библиотечному вызову ldap_search_ext(3), доступный из командной строки.

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

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

Результаты поиска представляются в виде расширенной версии LDIF. Опция -L управляет форматом вывода.

[править] Опции

-n
Показать что должно быть сделано, но не выполнять поиск на самом деле. Может быть полезно в сочетании с опцией -v для отладки.
-c
Режим непрерывного исполнения. ldapsearch сообщает об ошибках, но продолжает работу.
-u
Включить в вывод User Friendly Name для Distinguished Name (DN).
-v
Запустить в разговорчивом (verbose) режиме; диагностические сообщения должны выводиться на стандартный поток вывода.
-t[t]
Выводить непечатаемые значения во временные файлы. Полезно при работе со значениями, содержащими не символьные данные, такими как, например, jpegPhoto или аудио. Если указать второе -t, все полученные значения будут записаны в файлы.
-T path
Записывать временные файлы в каталог path (по умолчанию: /var/tmp/)
-F prefix
URL-префикс для временных файлов. По умолчанию file://path, где path это /var/tmp/ или каталог, заданный с помощью -T.
-A
Получать только атрибуты (без значений). Полезно в тех случаях, когда нужно посмотреть есть атрибут у записи или нет, а его значение не интересует.
-L
Результаты поиска показываются в LDAP Data Intechange Format (LDIF) формате. Подробнее о формате в ldif(5). Одно -L означает, что вывод должен быть в формате LDIFv1. Второе -L отключает комментарии. Третье -L отключает вывод версии. По умолчанию используется расширенная версия LDIF.
-M[M]
Включить контроль DSA IT. -MM делает контроль критичным.
-S attribute
Отсортировать результат по заданному атрибуту. По умолчанию результат не сортируется. Если атрибут нулевой длины (""), записи сортируются по компонентам Distinguished Name. Подробнее в ldap_sort(3). По умолчанию ldapsearch печатает результаты по мере их получения. При использовании сортировки данные сначала получаются, потом сортируются, потом выводятся.
-d debuglevel
Установить уровень отладки LDAP равным debuglevel. Программа ldapsearch должна быть откомпилирована с опцией LDAP_DEBUG, иначе эта опция не будет иметь эффекта.
-f file
Выполнять LDAP-поиск для каждой строки из файла file. Фильтр заданный в командной строке воспринимается как шаблон, в котором %s заменяется строкой из файла. Если вместо имени файла указан символ -, строки считываются со стандартного потока ввода.
-x
Использовать простую аутентификацию вместо SASL.
-D binddn
Привязаться к каталогу от имени binddn. В случае использования SASL предполагается, что сервер будет игнорировать это значение.
-W
Спросить пароль в ходе простой аутентификации. Этот ключ используется для того, чтобы не указывать пароль в командной строке.
-w passwd
Использовать passwd как пароль в ходе простой аутентификации.
-y passwdfile
Взять всю необходимую для простой аутентификации информацию из файла passwdfile
-H ldapuri
Указать URI LDAP-сервера; ожидается список URI, разделённых пробелами или запятыми; допускаются только поля протокол/хост/порт. В качестве исключения, если хост/порт не указан, но указан DN, необходимые хосты находятся по нему с использованием записей SRVS из DNS, как описано в RFC 2782. DN должен быть не пустой последовательностью AVA с типом атрибута "dc" (domain component). Он должен быть экранирован в соответствии с RFC 2396.
-h ldaphost
Указать хост, на котором работает LDAP-сервер. Не рекомендуется использовать. Используйте вместо этого -H
-p ldapport
Указать TCP-порт, на котором работает LDAP-сервер. Не рекомендуется использовать. Используйте вместо этого -H
-b searchbase
Использовать searchbase в качестве точки начала поиска, вместо стандартной.
-s base|one|sub|children
Определяет область (scope) поиска: base, one, sub и children определяет базовый объект, один уровень, поддерево или поиск по потомкам. По умолчанию поиск выполняется в поддереве (sub). Замечание: область children требует чтобы поддерживалась фича LDAPv3 subordinate.
-a never|always|search|find
Указать как разыменовывать алиасы. Должно быть указано одно из значений: never, always, search или find, что означает, соответственно, что алиасы никогда не разыменовываются, всегда разыменовываются, разыменовываются при поиске или при поиске базового объекта для поиска. По умолчанию алиасы не разыменовываются вообще.
-P 2|3
Указать, какую версию протокола LDAP использовать.
-l timelimit
Подождать пока поиск завершится в течение заданного времени timelimit. Значение 0 обозначает, что временного ограничения нет. Значение max обозначает максимальное значение, разрешаемое протоколом. Сервер может накладывать собственное ограничение, которое может перекрыть только root.
-e [!]ext[=extparam]
-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 sends abandon/cancel; not really controls)

Расширения поиска:
                [!]domainScope                               (domain scope)
                [!]mv=<filter>                               (фильтр подходящих записей)
                [!]pr=<size>[/prompt|noprompt]       (paged results/prompt)
                [!]sss=[-]<attr[:OID]>[/[-]<attr[:OID]>...]  (сортировка на стороне сервера)
                [!]subentries[=true|false]           (subentries)
                [!]sync=ro[/<cookie>]                        (LDAP Sync refreshOnly)
                        rp[/<cookie>][/<slimit>]     (LDAP Sync refreshAndPersist)

-l timelimit
Ждать не более timelimit секунд для окончания операции. Значение timelimit равное 0 или none означает, что ограничений нет. Значение max означает максимальное целое допустимое протоколом. Сервер может вводить лимит, который перекрыть может только пользователь root.
-z sizelimit
ограничить количество записей в результате числом sizelimit. Значение 0 или none обозначает, что ограничений быть не должно. Значение max обозначает максимальное целое число, разрешённое протоколом. Сервер может накладывать собственное ограничение, которое может перекрыть только root.
-O security-properties
Задать параметры безопасности SASL.
-I
Включить интерактивный режим SASL. Всегда спрашивать. По умолчанию: спрашивать только при необходимости.
-Q
Включить молчаливый (quiet) режим SASL. Никогда не спрашивать.
-U authcid
Задать аутентификационный ID для SASL. Форма ID зависит от того, какой механизм аутентификации в действительности используется.
-R realm
Задать realm аутентификационного ID для SASL. Форма realm зависит от того, какой механизм аутентификации в действительности используется.
-X authzid
Задать запрашиваемые авторизационный ID для SASL. authzid может быть в одной из форм: dn:<distinguished name> или u:<username>
-Y mech
Указать какой SASL-механизм использовать для аутентификации. Если не указан, программа выберет лучший механизм из тех, что знает сервер.
-Z[Z]
Расширенный режим StartTLS (Transport Layer Security). Если задать -ZZ, тогда операция обязательно должна быть успешной.

[править] Формат вывода

Если найдена одна или более записей, они выводятся на стандартный поток вывода в формате LDAP Data Interchange Format, LDIF (см. ldif(5)):

version: 1
# bjensen, example, net
dn: uid=bjensen,dc=example,dc=net
objectClass: person
objectClass: dcObject
uid: bjensen
cn: Barbara Jensen
sn: Jensen
...

Если используется опция -t, URI временного файла будет использоваться вместо настоящего значения. Если задан ключ -A, выводятся только имена атрибутов (attributename).

[править] Примеры

Такая команда:

 ldapsearch -LLL "(sn=smith)" cn sn telephoneNumber

будет выполнять поиск записи smith (sn=smith) в поддереве (база поиска и другие параметры берутся из ldap.conf(5)). Будут найдены и выведены на стандартный поток вывода: имя (common name, cn), фамилия (surname, sn) и телефонный номер (telephoneNumber). Если найдено две записи, результат будет выглядить похожим на этот:

dn: uid=jts,dc=example,dc=com
cn: John Smith
cn: John T. Smith
sn: Smith
sn;lang-en: Smith
sn;lang-de: Schmidt
telephoneNumber: 1 555 123-4567
dn: uid=sss,dc=example,dc=com
cn: Steve Smith
cn: Steve S. Smith
sn: Smith
sn;lang-en: Smith
sn;lang-de: Schmidt
telephoneNumber: 1 555 765-4321

Такая команда:

 ldapsearch -LLL -u -t "(uid=xyz)" jpegPhoto audio

выполнит поиск по стандартному поддереву записей, id пользователя в которых начинается с xyz. DN будет выведен сам и также его дружественное представление (user friendly form, UFN); jpegPhoto и audio будут записаны во временные файлы. Вывод выглядит так (если только одно значение найдено):

dn: uid=xyz,dc=example,dc=com
ufn: xyz, example, com
audio:< file:///tmp/ldapsearch-audio-a19924
jpegPhoto:< file:///tmp/ldapsearch-jpegPhoto-a19924

Такая команда:

 ldapsearch -LLL -s one -b "c=US" "(o=University*)" o description

выполнит одноуровневый на уровне c=US поиск записей, в которых имя организации (o) начинается словом Universite. Будут найдены и выведены название организации и описание (description). Вывод будет выглядеть так:

dn: o=University of Alaska Fairbanks,c=US
o: University of Alaska Fairbanks
description: Preparing Alaska for a brave new yesterday
description: leaf node only
dn: o=University of Colorado at Boulder,c=US
o: University of Colorado at Boulder
description: No personnel information
description: Institution of education and research
dn: o=University of Colorado at Denver,c=US
o: University of Colorado at Denver
o: UCD
o: CU/Denver
o: CU-Denver
description: Institute for Higher Learning and Research
dn: o=University of Florida,c=US
o: University of Florida
o: UFl
description: Warper of young minds
...

[править] Диагностика

Код завершения равен 0, если ошибок не было. Если ошибки были, код завершения отличен от 0, и на стандартный поток ошибок отправляются диагностические сообщения.

[править] См. также

ldapadd(1), ldapdelete(1), ldapmodify(1), ldapmodrdn(1), ldap.conf(5), ldif(5), ldap(3), ldap_search(3)

[править] Автор

The OpenLDAP Project <http://www.openldap.org/>

[править] Благодарности

OpenLDAP разрабатывается и спопровождается в рамках проекта The OpenLDAP Project (http://www.openldap.org/). OpenLDAP базируется на University of Michigan LDAP 3.3 Release.

[править] Ссылки сюда

ldap_table(5)

[править] Материалы по LDAP на xgu.ru

Серверы LDAP:

Источник — «http://xgu.ru/wiki/man/ldapsearch»