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

Миграция openldap - slapd не запускает «olcDbDirectory: значение № 0: неверный путь: отказано в разрешении»

Я перенес свою старую базу данных slapd на новый сервер, вот шаги, которые я предпринял:

1) на старом сервере запустить:

slapcat -n 0 -l config.ldif

slapcat -n 2 -l config.ldif

мне пришлось запустить slapcat -n 2 ... потому что с -n 1 я получаю slapcat: база данных не поддерживает необходимые операции.

2) скопируйте два файла ldif на новый сервер

3) установите openldap:

yum install -y openldap openldap-servers openldap-clients

4) редактируем config.ldif и меняем строчки

dn: olcDatabase={2}bdb,cn=config
olcDatabase: {2}bdb

быть

dn: olcDatabase={1}bdb,cn=config
olcDatabase: {1}bdb

5) запустите slapadd для двух файлов ldif:

slapadd -c -F /etc/openldap/slapd.d -n 0 -l config.ldif

В первый раз это дало мне ошибку о том, что olcOverlay не разрешен, поэтому я удалил строку для файла config.ldif, после чего все заработало.

slapadd -c -F /etc/openldap/slapd.d -n 1 -l data.ldif

это работало нормально.

6) запустите slapd, вот где моя проблема, slapd не запускается, и я получаю сообщение об ошибке:

 olcDbDirectory: value #0: invalid path: Permission denied
config error processing olcDatabase={1}bdb,cn=config: olcDbDirectory: value #0: invalid path: Permission denied

мой olcDbDirectory в файле config.ldif установлен в / usr / local / openldap / ldap, и эта папка существует и принадлежит ldap: ldap, и ive даже пытался дать ему 777 разрешений, но я все равно получаю эту ошибку.

Я ожидал, что запустится slapd. Если бы кто-нибудь мог мне помочь, было бы замечательно, либо шаги, которые я мог пропустить, либо то, что я должен сделать, чтобы устранить эту ошибку.

Когда вы импортируете файл config.ldif, slapadd не перезаписывает существующий контент, развернутый при установке yum. Чтобы правильно импортировать конфигурацию, вы должны сначала удалить текущую конфигурацию:

rm -r /etc/openldap/slapd.d/cn=config*
sudo -u ldap slapadd -F /etc/openldap/slapd.d -n0 -l config.ldif

(Если вы бежите slapadd как root, тогда вы должны chown -R ldap:ldap /etc/openldap/slapd.d потом. sudo -u ldap избегает необходимости делать это.)

Если вы все сделаете правильно, у slapadd все получится без нуждающийся -c.