Назад | Перейти на главную страницу

Произойдет ли что-нибудь плохое, если я изменю /etc/ldap/slapd.d/cn=config.ldif вручную?

Начиная с версии 2.3, OpenLDAP использует механизм конфигурации под названием slapd-config. Они сказали, что с его помощью вся конфигурация LDAP может быть изменена на лету.

Это заголовок /etc/ldap/slapd.d/cn=config.ldif:

# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.

Я изменил данные в нем и некоторых других файлах с таким заголовком, после перезапуска slapd мои изменения вступили в силу.

Что еще произойдет, если я изменю эти файлы вручную? Если мне не нужно «изменять на лету», следует ли мне редактировать этот файл вручную вместо использования ldapmodify? Какое приложение сгенерировало эти файлы и когда?

ПРИМЕЧАНИЕ: я использую openldap-2.4.28 в Ubuntu 12.04.

Если вы измените файлы LDIF в cn = config вручную, их содержимое и контрольные суммы не будут совпадать, что не фатально, но раздражает при использовании таких инструментов, как бездельник.

Правильное изменение cn = config с помощью ldapmodify очень болезненно, и вы в конечном итоге накопите тонны тщательно вручную созданных одноразовых файлов LDIF. По сравнению с простым редактированием slapd.conf это кошмар. В любом случае, если вам нужно внести изменения в конфигурацию среды выполнения, ldapmodify это ваш единственный вариант. Однако, если вы можете позволить себе некоторое время простоя, у вас есть два других яда на выбор.

Во-первых, есть сильно неподдерживаемый но быстрый и грязный метод, который отлично работает для начальной конфигурации OpenLDAP, если вы знаете, что делаете:

$ service slapd stop
$ cp -a /etc/ldap/slapd.d /etc/ldap/slapd.d.old
<edit the LDIF files in /etC/ldap/slapd.d>
$ service slapd start

Если slapd запускается, он должен работать нормально, но всегда полезно следить за / var / журнал / системный журнал при запуске сервиса:

$ tail -n 0 -f /var/log/syslog|grep slapd

Вы можете исправить ошибки контрольной суммы, используя бездельник и slapadd как описано ниже.

Во-вторых, есть менее неподдерживаемый метод что предполагает использование бездельник и slapadd (изменено из эти инструкции):

$ slapcat -n0 -F /etc/ldap/slapd.d > config.ldif
<edit config.ldif>
$ mkdir /etc/ldap/slapd.d.new
$ slapadd -n0 -F /etc/ldap/slapd.d.new -l config.ldif

Если slapadd завершится успешно без ошибок, вы можете перейти в измененный каталог slapd.d. В соответствии с эта тема slapadd только добавляет данные, поэтому перезапись исходного содержимого каталога slapd.d невозможна. Поэтому нам нужно немного переместить каталоги:

$ service slapd stop
$ mv /etc/ldap/slapd.d /etc/ldap/slapd.d.old
$ mv /etc/ldap/slapd.d.new /etc/ldap/slapd.d
$ chown -R openldap:openldap /etc/ldap/slapd.d
$ service slapd start

Эти два более или менее неподдерживаемых метода делают жизнь с cn = config немного более терпимой.

Когда вы видите файл с надписью

# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.

тебе было бы хорошо следуйте инструкциям по правильному изменению содержимого этого файла.

В данном случае это означает обновление конфигурации OpenLDAP с помощью ldapmodify команда в соответствии с руководством OpenLDAP.
Это позволяет вам на лету вносить изменения в конфигурацию OpenLDAP и регенерировать slapd.conf файл (используется при запуске сервера LDAP в качестве конфигурации начальной загрузки)


В общем, несоблюдение инструкций (например, «НЕ РЕДАКТИРУЙТЕ ЭТОТ ФАЙЛ, ПОТОМУ ЧТО ОН СОЗДАН АВТОМАТИЧЕСКИ!») Приведет к боли и страданиям.

В этом конкретном случае вы можете обнаружить, что ваши изменения в файле будут стерты в следующий раз, когда кто-то сделает что-то правильным образом, и вам придется реконструировать свою конфигурацию (вероятно, без записи об этом, поскольку файл, который вы редактировали, будет заменены).
В следующий раз, когда вы не примете во внимание подобное предупреждение, вы можете сделать систему не загружаемой или того хуже.