Я выполняю шаги в этой цепочке: Базовая установка openldap с использованием конфигурации slapd.d
Я создал и сохранил свой собственный файл .ldif с необходимыми мне изменениями и сохранил его как changes.ldif
. Вот содержимое созданного мной файла:
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}oRvzr9r1qQ7Cn3xN/efmeKJQzwS0wK6z
replace: olcRootDN
olcRootDN: cn=admin,dc=softura,dc=com
replace: olcSuffix
olcSuffix: dc=softura,dc=com
Затем я выполнил команду ldapmodify
:
ldapmodify -a -Q -Y EXTERNAL -H ldapi:/// -f changes.ldif
И мне сказали:
изменение записи "olcDatabse = {2} hdb, cn = config "
Пока все хорошо, правда? Но если я затем открою файл olcDatabse = {2} hdb.ldib
... ничего не изменилось.
РЕДАКТИРОВАТЬ:
Я изменил содержимое моего файла ldif на:
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}oRvzr9r1qQ7Cn3xN/efmeKJQzwS0wK6z
-
replace: olcRootDN
olcRootDN: cn=admin,dc=softura,dc=com
-
replace: olcSuffix
olcSuffix: dc=softura,dc=com
Теперь, когда я выполняю команду, я получаю следующее:
ldap_modify: Несоответствующее соответствие (18)
дополнительная информация: изменить / добавить: olcRootPW: нет правила сопоставления равенства
Корень моей проблемы состоял в том, что строка для olcRootPW
уже существовала. Похоже, что в этот момент это приводило к прерыванию, поскольку ни одна из следующих двух команд replace
не выполнялась.
Итак, ближайшая проблема решена.
Однако .... Теперь olcRootDN и olcSuffix правильно заменяются. Но существующая строка:
olcRootPW: e1NTSEF9b1J2enI5cjFxUTdDbjN4Ti9lZm1lS0pRendTMHdLNno=..
НЕ заменяется на:
olcRootPW: {SSHA}oRvzr9r1qQ7Cn3xN/efmeKJQzwS0wK6z
Она остается прежней. Я открою для этого новый пост.
Проверьте синтаксис вашего changes.ldif
. В моем примере есть строки только с -
. Они обозначают конец блока данных для операции LDAP (например, добавить
или заменить
).
См. man 5 ldif
и RFC 2849 .
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}oRvzr9r1qQ7Cn3xN/efmeKJQzwS0wK6z
-
replace: olcRootDN
olcRootDN: cn=admin,dc=softura,dc=com
-
replace: olcSuffix
olcSuffix: dc=softura,dc=com
Файлы LDIF довольно загадочны ...