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

Измените openLDAP cn = config без запуска slapd

Я пытаюсь настроить кластер OpenLDAP (PoC) с несколькими мастерами. Где-то я создал плохую конфигурацию, и теперь slapd не запускается. Поскольку cn=config/olc config помечен CRC32, он не принимает ручные изменения.

Итак, как мне внести изменения в конфигурацию без запущенного демона?

Там есть slapadd, но мне нужно изменить, а не добавить ... не так ли? Я чувствую, что могу упустить что-то очевидное.

Если это имеет значение, я думаю, что один или оба olcModuleLoad и olcServerID не правы.

Запуск openldap-2.4.42 в Ubuntu 16.04.

Обновить
Я ошибался, говоря, что правки не принимаются. Конфигурация была отклонена по другой причине (совпадение идентификатора сервера / URL не найдено), ошибка контрольной суммы была зарегистрирована, но не препятствует запуску демона.

Мне удалось вручную отредактировать файлы ldif в /etc/ldap/slap.d/cn=config и запускаем сервер. (Хотя я еще не получил репликацию с несколькими мастерами.)

Я знаю, что вы в основном решили свою проблему, но я подумал, что добавлю свои собственные шаги для создания автономных конфигураций slapd, если кто-то еще столкнется с этим. Это из моей собственной документации для систем на основе Debian:

Иногда бывает необходимо отредактировать cn=config стиль базы данных вручную (если вы не можете войти в базу данных, например, с помощью учетной записи root), однако cn=config базу данных стилей никогда не следует редактировать вручную. Чтобы исправить проблемы непосредственно в самих файлах, вам необходимо преобразовать базу данных в формат ldif, внести изменения, а затем восстановить базу данных. Это достигается с помощью инструментов пощечины.

Начните с остановки службы slapd. Рекомендуется сделать копию каталога slapd и всего его содержимого на случай, если что-то пойдет не так.

$ systemctl stop slapd
$ cp -a /etc/ldap/slapd.d /var/backups/slapd.d-offline-$(date +%s)

Теперь сделайте резервную копию базы данных slapd, которую вы хотите изменить. Инструменты slap следует использовать для резервного копирования и восстановления. Slapcat можно использовать для преобразования базы данных из cn=config стиль в файл ldif. Чтобы сделать резервную копию базы данных конфигурации, экспортируйте ее в файл ldif с помощью slapcat.

$ slapcat -n0 -F /etc/ldap/slapd.d/ -l /var/backups/slapd.d-config-$(date +%s).ldif

Параметр -n указывает, какую базу данных нужно резервировать. База данных конфигурации всегда равна 0.

Чтобы сделать резервную копию другой базы данных, просто замените параметр dbnum правильным номером базы данных. Если у вас только одна база данных, это, вероятно, будет «1».

$ slapcat -n1 -F /etc/ldap/slapd.d/ -l /var/backups/slapd.d-acme-$(date +%s).ldif

После того, как вы создали резервную копию текущей базы данных, вам необходимо удалить каталог slapd в папке ldap и создать новый.

$ rm -rf /etc/ldap/slapd.d
$ mkdir /etc/ldap/slapd.d

Теперь вы можете внести изменения в файл ldif, созданный с помощью инструмента slapcat с текстовым редактором. Будьте осторожны с любыми изменениями, так как опечатки, недопустимый синтаксис и другие проблемы приведут к сбою повторного импорта файла ldif. После того, как все ваши изменения будут внесены, импортируйте вашу базу данных в новый каталог slapd.

Преобразование резервной копии вашей базы данных в формате ldif в cn=config выполняется с помощью инструмента slapadd. Инструмент slapadd, как и инструмент slapcat, требует номер базы данных. 0 всегда является базой данных конфигурации.

$ slapadd -n0 -F /etc/ldap/slapd.d -l /var/backups/slapd.d-config-<timestamp>.ldif

Заменить <timestamp> с базой данных, которую вы действительно хотите восстановить.

Чтобы восстановить базу данных вместо базы данных конфигурации, просто замените параметр dbnum правильным номером базы данных. Если у вас только одна база данных, это, вероятно, будет «1».

Обязательно измените владельца и разрешения для всех новых файлов.

$ chown -R openldap:openldap /etc/ldap/slapd.d

Теперь запустите slapd обратно.

$ systemctl start slapd

Вы никогда не должны вручную редактировать файлы конфигурации, находящиеся в каталоге /etc/ldap/slap.d/cn=config.

Всегда создавайте файлы ldif с необходимыми изменениями конфигурации и используйте утилиты ldapadd, ldapmodify, ldapdelete для обновления конфигурации OpenLDAP.

Используйте команду ниже для установки утилит ldap, если вы используете машину Debian.

sudo apt install ldap-utils

Обратитесь: Как использовать файлы LDIF для внесения изменений в систему OpenLDAP