Я использую сервер openLDAP версии 2.4.40 на CentOS 7. LDAP будет настроен с использованием опции online conf (olc). Благодаря этому вопрос, Я знаю, что файлы базы данных slapd находятся в /var/lib/ldap
.
Я пытаюсь запустить сервер openLDAP в Linux в качестве раздела ОС только для чтения и другого раздела для постоянных данных. Я смогу установить и настроить openLDAP в разделе ОС, но потеряю к нему доступ после настройки.
Вопрос: Можно ли изменить место чтения / записи данных LDAP из / var / lib / ldap куда-нибудь на постоянный раздел данных?
Раньше я перемещал базу данных по умолчанию openldap после каждой новой настройки.
Шаги, которые я делаю, когда хочу переместить базу данных:
slapd
sudo service slapd stop
slapcat
содержание cn=config
ветка в файле LDIFsudo slapcat -b cn=config > /tmp/config.ldif
/var/lib/ldap
каталог в любом местеopenldap
владеет новым каталогом и всеми файлами внутриolcDbDirectory
на новое место/etc/ldap/slapd.d
пусто перед этим)sudo rm -r /etc/ldap/slapd.d/*
sudo slapadd -F /etc/ldap/slapd.d -b cn=config -l /tmp/config.ldif
/etc/ldap/slapd.d
и все его содержимое принадлежит openldap
sudo chown -R openldap:openldap /etc/ldap/slapd.d/
Например, с apparmor
, отредактируйте файл /etc/apparmor.d/usr.sbin.slapd
и добавьте следующие строки:
/path/to/new/db/ r,
/path/to/new/db/** rwk,
sudo service apparmor restart
sudo service slapd start
Обычно это помогает. Так же я делаю резервную копию конфигурации своих экземпляров openldap.
Я прочитал ваш вопрос в двух частях:
/var/lib/ldap
Хотя я подозреваю, что №2 возможен, у меня недостаточно непосредственного опыта работы с OpenLDAP, чтобы решить эту проблему напрямую. Что я могу сделать, так это предложить альтернативное решение для №1. Примонтировать разностный раздел диска в /var/lib/ldap
, как через mount
командование и через fstab
. Это должно эффективно достичь вашей цели, независимо от того, поддерживает ли OpenLDAP это изначально. Вы также можете заменить /var/lib/ldap
папку с символической ссылкой на нужное место. Опять же, это обходит OpenLDAP и любую поддержку, которая есть или не встроена в этот проект.
Наконец, вам также следует подумать о сохранении доступа на запись для определенных областей журнала. Методы, описанные в предыдущем абзаце, также могут работать для перемещения местоположений файлов журнала.
Openldap, похоже, не поддерживает перемещение базы данных, файла базы данных после того, как он был создан. Openldap в настоящее время также не поддерживает удаление файлов БД.
Можно создать новый файл БД и определить его атрибут olcDbDirectory для пути в другом разделе.
dn: olcDatabase=bdb,cn=config
objectClass: olcBdbConfig
olcDatabase: bdb
olcDbDirectory: /partition/db/new-db-file
olcSuffix: dc=example,dc=net
Информация содержится в главе 6.1.1.4.5 Добавление / удаление баз данных с помощью OLC