Примечание: В последнее время многие используют в качестве LDAP-клиента и браузера общего назначения гибкий и мощный Apache Directory Studio. Что ж, это прекрасный выбор. Мы же склонны придерживаться LDAPBrowser/Editor — название уж больно хорошее. Старого пса новым трюкам не выучишь.
У OpenLDAP есть набор инструментов. Мы описываем их здесь для полноты картины, но эту информацию всегда можно получить из соответствующих man-страниц, если Вам посчастливилось использовать системы 'nix.
Жизненно важное правило: в общем случае, если команда начинается с ldap, slapd ДОЛЖЕН быть запущен. Если же она начинается с slap (а именно slapcat, slapindex, slapadd) slapd НЕ ДОЛЖЕН быть запущен, а если он запущен, Вы можете повредить базу данных ldap. Использовать их совместно — только на свой страх и риск, хотя в последних версиях OpenLDAP утверждается, что при использовании механизмов манипуляции данными bdb или hdb slapcat можно выполнять при запущенном slapd. Хм.
Единственное исключение из этого правила — это slappasswd, незлобная маленькая утилитка, предназначенная для создания паролей. Печально, что это маленькое исключение существует — настолько важное значение имеет необходимость остановки slapd при запуске всех остальных команд. И хотя это и бессмысленно, — останавливать slapd только для того, чтобы выполнить slappasswd, лучше выработать условный рефлекс на префикс slap и всегда останавливать slapd, чем получить разрушенную базу данных при запуске, скажем, slapcat. Вот насколько важна эта штука. Некоторые из нас скажут: "Я уж точно никогда не ошибусь, я ведь умный". Но когда в панике пытаешься оживить службу, и при этом 57 человек дышат тебе в затылок, — ну и кто тут умный?
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
Примечания:
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 открывает соединение с сервером 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 использует расширенную операцию модификации пароля 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 открывает соединение с сервером 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 prefix | URL-префикс для временных файлов. По умолчанию 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
Уже совсем скоро (One Day Real Soon Now™)
Обновлено для 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 DN | DN пользователя, от имени которого предполагается подключаться к 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." |
Обновлено для 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. |
Уже совсем скоро (One Day Real Soon Now™)
Обновлено для 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 | Включить подробный режим. |
Обновлено для 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. Аргумент -d переопределяет любые настройки olcLogLevel/loglevel, в том числе те обновления olcLogLevel, которые были выполнены после загрузки slapd с использованием OLC (cn=config). |
-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. Может быть определено несколько экземпляров URL с одной и той же схемой протокола, если необходима поддержка нескольких номеров портов. Примеры:
# соединения на всех интерфейсах с адресами только 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 ) должны находиться в пределах заданной структуры директорий. |
Уже совсем скоро (One Day Real Soon Now™)
Обновлено для 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, но можно задать один или несколько атрибутов в командной строке. |
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 | Включить подробный режим. |
Генерация пароля 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 может использоваться для проверки конфигурационного файла 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. Все права защищены. Последнее изменение страницы: 5 сентября 2017 г.
Переведено участниками проекта Pro-LDAP.ru в 2011-2017 г.