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 не принимается;
ненастоящие элементы управления)
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 будут запрошены и выведены во временные файлы.
Если будет найдена одна запись, в которой есть по одному значению каждого запрашиваемого атрибута, вывод может быть примерно такой:
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
...
ДИАГНОСТИКА
Если ошибок не произошло, код завершения - ноль. При наличии ошибок код завершения будет ненулевым,
а в стандартный поток ошибок будет выведено диагностическое сообщение.
Программное обеспечение OpenLDAP
разработано и поддерживается проектом OpenLDAP <http://www.openldap.org/>.
Программное обеспечение OpenLDAP
является производным от релиза 3.3 LDAP Мичиганского Университета.