Какой шанс, что при смене пароля, что-то пойдет не так что даже не поможет возвращение обратно, забекапленного файла /etc/openldap/slapd.d/cn=config/olcDatabase={0}config.ldif ?
Просто оч.стрёмно, у нас на этом авторизация пользователей завязана и черт его знает какие еще сервисы через него могут авторизироваться.
Еще раз проверил свою
инструкцию по замене пароля -- если всё сделать по ней, ничего не умрёт. По сути, LDIF-файл (в виде которого представлены настройки slapd) -- это обычный текстовый файл, в котором имена атрибутов ассоциируются со значениями. Меняя значение атрибута olcRootPW, Вы всего лишь заменяете одно тектовое значение на другое. Максимум, что может пойти не так -- это Вы получите ещё один неработающий пароль для olcRootDN (если неправильно сгенерируете его утилитой slappasswd), все остальные настройки slapd останутся без изменений. В общем, здесь нет никакой магии, обычный текстовый файл с настройками, вот и всё. Тем более изменение настроечного каталога не повлияет на рабочую БД с учётками пользователей.
Естественно, как и перед любыми изменениями настроек, нужно сделать резерную копию и директории /etc/openldap/slapd.d , и рабочей БД (при остановленном slapd). Если случится страшное и slapd не запустится, просто вернёте /etc/openldap/slapd.d/cn=config/olcDatabase={0}config.ldif обратно, для этого и делается бэкап.
Если уж делать совсем правильно, то нужно протестировать изменения конфигурационного каталога на макете, а потом воспроизвести эти изменения в продакшн. В принципе, так должно происходить всегда, потому что экспериментировать на продакшн-системе, по меньшей мере, самонадеянно и непрофессионально -- всегда можно нарваться на неожиданные последствия.
И еще, для подификации схемы, мне полюбому нужен именно этот пароль?
И если да, то по логике вещей сотрудник который правил схему, тоже должен был пользоатся именно этим паролем?
или это не считается модификацией схемы?
LDAPTLS_CACERT=/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt ldapmodify -x -H ldaps://ldap-server01.com -D cn=admin,cn=config -W -f ./add_limits.ldif
Современный способ настройки slapd -- это конфигурационный каталог cn=config. Разработчики OpenLDAP отказались от плоского конфигурационного файла slapd.conf в пользу конфигурационного каталога в первую очередь потому, что можно, не останавливая работу slapd (что очень важно в нагруженных системах), внести изменения, которые сразу же будут приняты и отразятся на работе сервиса. То, что Вы называете "модификацией схемы", как мне кажется, относится именно к внесению изменений в настройки slapd посредством модификации конфигурационного каталога cn=config. В мире LDAP-каталогов термин "схема" имеет другое значение и относится к схеме данных каталога, так что фраза "модифицировать схему без перезагрузки" может несколько дезориентировать собеседника. Если я правильно Вас понял, и Вы имели ввиду именно изменение настроек slapd, то давайте впредь будем использовать такую терминологию.
По сути, конфигурационный каталог cn=config ничем не отличается от других LDAP-каталогов, изменения в него вносятся с помощью стандартных запросов Modify протокола LDAP (это можно сделать через LDAP-браузер типа phpldapadmin или применением LDIF-файлов с помощью консольных утилит типа ldapmofify). Важный момент -- для модификации данных любого каталога нужно иметь соответствующие права на выполнение модификации. Пользователь, DN которого указано в значении атрибута olcRootDN в настройках каталога, получает неограниченные права на доступ к этому каталогу (по аналогии с учёткой root в Unix-системах). Для Вашего рабочего каталога это будет пользователь cn=admin,dc=hc,dc=com , для каталога cn=config -- пользователь cn=admin,cn=config , каждый из них может выполнять любые действия, но именно со своим каталогом. Для того, чтобы пользователь авторизовался в системе, ему нужно пройти аутентификацию, для этого и задаётся пароль в атрибуте olcRootPW.
Резюме: Внести изменения в настройки slapd путём модификации каталога cn=config можно (и нужно) без остановки сервера slapd -- для этого данный каталог и был разработан. Чтобы внести изменения в cn=config нужно обладать правами для модификации этого каталога, чаще всего для этих целей применяют аутентификацию от имени пользователя, указанного в атрибуте olcRootDN, с паролем из атрибута olcRootPW.
Надеюсь, стало понятнее. Егор