LDAPSEARCH(1)

НАЗВАНИЕ

ldapsearch - инструмент поиска LDAP

СИНТАКСИС

ldapsearch [ -V[V]] [ -d debuglevel] [ -n] [ -v] [ -c] [ -u] [ -t[t]] [ -T path] [ -F prefix] [ -A] [ -L[L[L]]] [ -S attribute] [ -b searchbase] [ -s {base | one | sub | children}] [ -a {never | always | search | find}] [ -l timelimit] [ -z sizelimit] [ -f file] [ -M[M]] [ -x] [ -D binddn] [ -W] [ -w passwd] [ -y passwdfile] [ -H ldapuri] [ -h ldaphost] [ -p ldapport] [ -P {2 | 3}] [ -e [!]ext[=extparam]] [ -E [!]ext[=extparam]] [ -o opt[=optparam]] [ -O security-properties] [ -I] [ -Q] [ -N] [ -U authcid] [ -R realm] [ -X authzid] [ -Y mech] [ -Z[Z]] filter [ attrs...]

ОПИСАНИЕ

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

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

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

Результаты поиска отображаются в виде расширенной версии LDIF. Формат вывода контролируется с помощью параметра -L.

ПАРАМЕТРЫ

-V[V]

Вывод информации о версии. При указании -VV, после вывода информации о версии осуществляется выход. При указании -V, после вывода информации о версии выполняется поиск согласно заданным критериям.

-d debuglevel

Установить уровень отладки LDAP в debuglevel. Чтобы этот параметр работал, ldapsearch должен быть скомпилирован с опцией LDAP_DEBUG.

-n

Демонстрируется, что будет сделано, но реальный поиск не выполняется. Используется для отладки совместно с параметром -v.

-v

Запуск в режиме подробного вывода, множество диагностических сообщений посылается на стандартный вывод.

-c

Режим продолжения операции. Выводятся сообщения об ошибках, но ldapsearch продолжает поиск. По умолчанию после сообщения об ошибке происходит завершение работы. Применимо только совместно с параметром -f.

-u

В вывод включается форма удобного для пользователя имени (User Friendly Name, UFN) уникального имени (Distinguished Name, DN).

-t[t]

При указании одного -t полученные непечатаемые значения записываются в набор временных файлов. Полезно при работе со значениями, содержащими несимвольные данные, такими как jpegPhoto или audio. При указании второго -t все полученные значения записываются в файлы.

-T path

Временные файлы записываются в указанную в path директорию (по умолчанию /var/tmp/).

-F prefix

URL-префикс для временных файлов. По умолчанию file://path, где path - либо /var/tmp/, либо значение, указанное в параметре -T.

-A

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

-L

Управление выводом результатов поиска в формате обмена данными LDAP (LDAP Data Interchange Format), описанном в ldif(5). Единичный -L ограничивает вывод форматом LDIFv1. Второй -L отключает вывод комментариев. Третий -L отключает вывод версии LDIF. По умолчанию используется расширенная версия LDIF.

-S attribute

Отсортировать возвращаемые записи по атрибуту attribute. По умолчанию возвращаемые записи не сортируются. Если в качестве attribute задана строка нулевой длины (""), записи сортируются по компонентам их уникального имени Distinguished Name. Подробнее смотрите в ldap_sort(3). Обратите внимание, что по умолчанию ldapsearch выводит записи по мере их получения. При использовании параметра -S все данные сначала получаются, потом сортируются, потом выводятся.

-b searchbase

Использовать в качестве точки начала поиска searchbase вместо значения по умолчанию.

-s {base | one | sub | children}

Указывает диапазон поиска. Может принимать одно из следующих значений: base, one, sub или children, что означает поиск только по базовому объекту, на один уровень ниже, по всему поддереву и по дочерним записям соответственно. Значение по умолчанию - sub. Примечание: для диапазона children требуется расширение LDAPv3 subordinate feature.

-a {never | always | search | find}

Указывает, как выполняется разыменование псевдонимов. Может принимать одно из следующих значений: never, always, search или find, что означает, что псевдонимы никогда не разыменовываются, всегда разыменовываются, разыменовываются при поиске или при нахождении базового объекта поиска соответственно. По умолчанию псевдонимы никогда не разыменовываются.

-l timelimit

Ждать окончания поиска не более timelimit секунд. Значение timelimit 0 (ноль) или none означает, что ограничений нет. Значение timelimit max означает максимальное допустимое протоколом значение (целое число). Сервер может налагать своё максимальное значение ограничения по времени timelimit, переопределить его может только пользователь root.

-z sizelimit

Ограничить количество возвращаемых в результате поиска записей значением sizelimit. Значение sizelimit 0 (ноль) или none означает, что ограничений нет. Значение sizelimit max означает максимальное допустимое протоколом значение (целое число). Сервер может налагать своё максимальное значение ограничения по количеству записей sizelimit, переопределить его может только пользователь root.

-f file

Считать серию строк из файла file и выполнить по одному поиску LDAP для каждой строки. В этом случае заданный в командной строке фильтр filter интерпретируется как шаблон, в котором первое и только первое вхождение %s заменяется строкой из файла file. Любые другие вхождения символа % в шаблоне будут рассматриваться как ошибка. Если требуется, чтобы в поисковом фильтре присутствовал символ %, он должен быть закодирован как \25 (смотрите RFC 4515). Если в качестве значения file указан единичный символ -, то строки считываются со стандартного ввода. Если не используется параметр -c, ldapsearch будет завершать работу после первой операции поиска, вернувшей неудачный код возврата.

-M[M]

Включить элемент управления Manage DSA IT. -MM делает этот элемент управления критичным.

-x

Использовать простую аутентификацию вместо SASL.

-D binddn

Использовать указанное в binddn уникальное имя Distinguished Name при подсоединении к каталогу LDAP. При SASL-подсоединениях сервер будет игнорировать это значение.

-W

Запрашивать ввод пароля для простой аутентификации. Используется для того, чтобы не указывать пароль в командной строке.

-w passwd

Использовать указанное значение passwd в качестве пароля для простой аутентификации.

-y passwdfile

Использовать полное содержимое файла passwdfile в качестве пароля для простой аутентификации.

-H ldapuri

Указывает URI (возможно, несколько), ссылающийся на LDAP-сервер (серверы); в качестве значения параметр принимает список URI, разделённый пробелами или запятыми; в URI допускаются только поля протокол/хост/порт. В порядке исключения, если указан не хост/порт, а DN, этот DN используется для поиска соответствующего хоста (хостов) с помощью SRV-записи DNS в соответствии с RFC 2782. DN должен быть непустой последовательностью AVA с типом атрибута "dc" (domain component). Он должен быть экранирован согласно требованиям RFC 2396.

-h ldaphost

Указывает альтернативный хост, на котором работает LDAP-сервер. Устаревший параметр; используйте вместо него -H.

-p ldapport

Указывает альтернативный порт TCP, на котором ожидает соединений LDAP-сервер. Устаревший параметр; используйте вместо него -H.

-P {2 | 3}

Указывает, какую версию протокола LDAP использовать.

-e [!]ext[=extparam]
-E [!]ext[=extparam]

Указывает общие расширения с помощью -e и расширения поиска с помощью -E. Знак `!` обозначает критичность расширения.

Общие расширения:

  [!]assert=<filter>    (фильтр RFC 4515)
  [!]authzid=<authzid>  ("dn:<dn>" или "u:<user>")
  [!]bauthzid           (элемент управления authzid RFC 3829)
  [!]chaining[=<resolve>[/<cont>]]
  [!]manageDSAit
  [!]noop
  ppolicy
  [!]postread[=<attrs>] (разделённый запятыми список атрибутов)
  [!]preread[=<attrs>]  (разделённый запятыми список атрибутов)
  [!]relax
  sessiontracking
  abandon,cancel,ignore (сигнал SIGINT посылает abandon/cancel,
  либо в ответ на него посылается ignore; если расширение помечено
  как критичное, сигнал SIGINT не принимается;
  ненастоящие элементы управления)

Расширения поиска:

  !dontUseCopy
  [!]domainScope                       (диапазон домена)
  [!]mv=<filter>                       (фильтр совпавших значений)
  [!]pr=<size>[/prompt|noprompt]       (постраничный вывод результатов/запрос вывода)
  [!]sss=[-]<attr[:OID]>[/[-]<attr[:OID]>...]  (сортировка на стороне сервера)
  [!]subentries[=true|false]           (подзаписи)
  [!]sync=ro[/<cookie>]                (LDAP Sync refreshOnly)
          rp[/<cookie>][/<slimit>]     (LDAP Sync refreshAndPersist)
  [!]vlv=<before>/<after>(/<offset>/<count>|:<value>)  (вид виртуального списка)
  [!]deref=derefAttr:attr[,attr[...]][;derefAttr:attr[,attr[...]]]
  [!]<oid>[=<value>]
-o opt[=optparam]

Указывает опции общего назначения.

Возможные опции:

  nettimeout=<timeout>  (в секундах, либо "none" или "max")
  ldif-wrap=<width>     (в символах, либо "no" для предотвращения разбиения строк)
-O security-properties

Указывает параметры безопасности SASL.

-I

Включает интерактивный режим SASL. Запросы выводятся всегда. По умолчанию запросы выводятся только по мере необходимости.

-Q

Включает тихий режим SASL. Запросы не выводятся никогда.

-N

Указывает не использовать обратное разрешение DNS для получения канонического имени хоста SASL.

-U authcid

Задаёт аутентификационный идентификатор для подсоединений SASL. Форма идентификатора зависит от того, какой механизм аутентификации в действительности используется.

-R realm

Задаёт realm аутентификационного идентификатора для подсоединений SASL. Форма realm зависит от того, какой механизм аутентификации в действительности используется.

-X authzid

Задаёт запрашиваемый авторизационный идентификатор для подсоединений SASL. Значение authzid должно быть в одном из следующих форматов: dn:<distinguished name> или u:<username>

-Y mech

Задаёт механизм SASL, который будет использоваться для аутентификации. Если параметр не указан, программа выберет лучший из известных серверу механизмов.

-Z[Z]

Запрос расширенной операции StartTLS (Transport Layer Security). При использовании -ZZ эта операция должна быть выполнена успешно.

ФОРМАТ ВЫВОДА

Если найдена одна или несколько записей, каждая запись выводится в стандартный поток вывода в формате LDAP Data Interchange Format или 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

выполнит поиск по поддереву (с использованием базы поиска и других параметров по умолчанию, заданных в ldap.conf(5)) для записей, в которых атрибут surname (sn) имеет значение smith. Будут получены и выведены в стандартный поток вывода значения атрибутов 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

выполнит поиск по поддереву с использованием базы поиска по умолчанию для записей, в которых атрибут uid имеет значение "xyz". Форма удобного для пользователя имени DN будет выведена после строки, содержащей само DN, а значения атрибутов 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 для всех записей, значение атрибута organization name (o) которых начинается с University. Будут запрошены и выведены в стандартный поток вывода значения атрибутов organization name и 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

    ...

ДИАГНОСТИКА

Если ошибок не произошло, код завершения - ноль. При наличии ошибок код завершения будет ненулевым, а в стандартный поток ошибок будет выведено диагностическое сообщение.

СМОТРИТЕ ТАКЖЕ

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

АВТОРЫ

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

ПРИЗНАНИЕ ЗАСЛУГ

Программное обеспечение OpenLDAP разработано и поддерживается проектом OpenLDAP <http://www.openldap.org/>. Программное обеспечение OpenLDAP является производным от релиза 3.3 LDAP Мичиганского Университета.

OpenLDAP 2.4.47 LDAPSEARCH(1) 2018/12/19