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.
Вывод информации о версии. При указании -VV, после вывода информации о версии осуществляется выход. При указании -V, после вывода информации о версии выполняется поиск согласно заданным критериям.
Установить уровень отладки LDAP в debuglevel. Чтобы этот параметр работал, ldapsearch должен быть скомпилирован с опцией LDAP_DEBUG.
Демонстрируется, что будет сделано, но реальный поиск не выполняется. Используется для отладки совместно с параметром -v.
Запуск в режиме подробного вывода, множество диагностических сообщений посылается на стандартный вывод.
Режим продолжения операции. Выводятся сообщения об ошибках, но ldapsearch продолжает поиск. По умолчанию после сообщения об ошибке происходит завершение работы. Применимо только совместно с параметром -f.
В вывод включается форма удобного для пользователя имени (User Friendly Name, UFN) уникального имени (Distinguished Name, DN).
При указании одного -t полученные непечатаемые значения записываются в набор временных файлов. Полезно при работе со значениями, содержащими несимвольные данные, такими как jpegPhoto или audio. При указании второго -t все полученные значения записываются в файлы.
Временные файлы записываются в указанную в path директорию (по умолчанию /var/tmp/).
URL-префикс для временных файлов. По умолчанию file://path, где path - либо /var/tmp/, либо значение, указанное в параметре -T.
Получать только атрибуты (без значений). Полезно, если Вы хотите лишь убедиться в наличии атрибута в записи и не интересуетесь конкретными значениями.
Управление выводом результатов поиска в формате обмена данными LDAP (LDAP Data Interchange Format), описанном в ldif(5). Единичный -L ограничивает вывод форматом LDIFv1. Второй -L отключает вывод комментариев. Третий -L отключает вывод версии LDIF. По умолчанию используется расширенная версия LDIF.
Отсортировать возвращаемые записи по атрибуту attribute. По умолчанию возвращаемые записи не сортируются. Если в качестве attribute задана строка нулевой длины (""), записи сортируются по компонентам их уникального имени Distinguished Name. Подробнее смотрите в ldap_sort(3). Обратите внимание, что по умолчанию ldapsearch выводит записи по мере их получения. При использовании параметра -S все данные сначала получаются, потом сортируются, потом выводятся.
Использовать в качестве точки начала поиска searchbase вместо значения по умолчанию.
Указывает диапазон поиска. Может принимать одно из следующих значений: base, one, sub или children, что означает поиск только по базовому объекту, на один уровень ниже, по всему поддереву и по дочерним записям соответственно. Значение по умолчанию - sub. Примечание: для диапазона children требуется расширение LDAPv3 subordinate feature.
Указывает, как выполняется разыменование псевдонимов. Может принимать одно из следующих значений: never, always, search или find, что означает, что псевдонимы никогда не разыменовываются, всегда разыменовываются, разыменовываются при поиске или при нахождении базового объекта поиска соответственно. По умолчанию псевдонимы никогда не разыменовываются.
Ждать окончания поиска не более timelimit секунд. Значение timelimit 0 (ноль) или none означает, что ограничений нет. Значение timelimit max означает максимальное допустимое протоколом значение (целое число). Сервер может налагать своё максимальное значение ограничения по времени timelimit, переопределить его может только пользователь root.
Ограничить количество возвращаемых в результате поиска записей значением sizelimit. Значение sizelimit 0 (ноль) или none означает, что ограничений нет. Значение sizelimit max означает максимальное допустимое протоколом значение (целое число). Сервер может налагать своё максимальное значение ограничения по количеству записей sizelimit, переопределить его может только пользователь root.
Считать серию строк из файла file и выполнить по одному поиску LDAP для каждой строки. В этом случае заданный в командной строке фильтр filter интерпретируется как шаблон, в котором первое и только первое вхождение %s заменяется строкой из файла file. Любые другие вхождения символа % в шаблоне будут рассматриваться как ошибка. Если требуется, чтобы в поисковом фильтре присутствовал символ %, он должен быть закодирован как \25 (смотрите RFC 4515). Если в качестве значения file указан единичный символ -, то строки считываются со стандартного ввода. Если не используется параметр -c, ldapsearch будет завершать работу после первой операции поиска, вернувшей неудачный код возврата.
Включить элемент управления Manage DSA IT. -MM делает этот элемент управления критичным.
Использовать простую аутентификацию вместо SASL.
Использовать указанное в binddn уникальное имя Distinguished Name при подсоединении к каталогу LDAP. При SASL-подсоединениях сервер будет игнорировать это значение.
Запрашивать ввод пароля для простой аутентификации. Используется для того, чтобы не указывать пароль в командной строке.
Использовать указанное значение passwd в качестве пароля для простой аутентификации.
Использовать полное содержимое файла passwdfile в качестве пароля для простой аутентификации.
Указывает URI (возможно, несколько), ссылающийся на LDAP-сервер (серверы); в качестве значения параметр принимает список URI, разделённый пробелами или запятыми; в URI допускаются только поля протокол/хост/порт. В порядке исключения, если указан не хост/порт, а DN, этот DN используется для поиска соответствующего хоста (хостов) с помощью SRV-записи DNS в соответствии с RFC 2782. DN должен быть непустой последовательностью AVA с типом атрибута "dc" (domain component). Он должен быть экранирован согласно требованиям RFC 2396.
Указывает альтернативный хост, на котором работает LDAP-сервер. Устаревший параметр; используйте вместо него -H.
Указывает альтернативный порт TCP, на котором ожидает соединений LDAP-сервер. Устаревший параметр; используйте вместо него -H.
Указывает, какую версию протокола LDAP использовать.
Указывает общие расширения с помощью -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>]
Указывает опции общего назначения.
Возможные опции:
nettimeout=<timeout> (в секундах, либо "none" или "max")
ldif-wrap=<width> (в символах, либо "no" для предотвращения разбиения строк)
Указывает параметры безопасности SASL.
Включает интерактивный режим SASL. Запросы выводятся всегда. По умолчанию запросы выводятся только по мере необходимости.
Включает тихий режим SASL. Запросы не выводятся никогда.
Указывает не использовать обратное разрешение DNS для получения канонического имени хоста SASL.
Задаёт аутентификационный идентификатор для подсоединений SASL. Форма идентификатора зависит от того, какой механизм аутентификации в действительности используется.
Задаёт realm аутентификационного идентификатора для подсоединений SASL. Форма realm зависит от того, какой механизм аутентификации в действительности используется.
Задаёт запрашиваемый авторизационный идентификатор для подсоединений SASL. Значение authzid должно быть в одном из следующих форматов: dn:<distinguished name> или u:<username>
Задаёт механизм SASL, который будет использоваться для аутентификации. Если параметр не указан, программа выберет лучший из известных серверу механизмов.
Запрос расширенной операции 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 |