Начиная с версии 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 в качестве конфигурации начальной загрузки)
В общем, несоблюдение инструкций (например, «НЕ РЕДАКТИРУЙТЕ ЭТОТ ФАЙЛ, ПОТОМУ ЧТО ОН СОЗДАН АВТОМАТИЧЕСКИ!») Приведет к боли и страданиям.
В этом конкретном случае вы можете обнаружить, что ваши изменения в файле будут стерты в следующий раз, когда кто-то сделает что-то правильным образом, и вам придется реконструировать свою конфигурацию (вероятно, без записи об этом, поскольку файл, который вы редактировали, будет заменены).
В следующий раз, когда вы не примете во внимание подобное предупреждение, вы можете сделать систему не загружаемой или того хуже.