`ldapmodify` не работает - не меняет содержимое файла

Я выполняю шаги в этой цепочке: Базовая установка 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: нет правила сопоставления равенства

1
задан 5 September 2019 в 17:37
2 ответа

Корень моей проблемы состоял в том, что строка для olcRootPW уже существовала. Похоже, что в этот момент это приводило к прерыванию, поскольку ни одна из следующих двух команд replace не выполнялась.

Итак, ближайшая проблема решена.

Однако .... Теперь olcRootDN и olcSuffix правильно заменяются. Но существующая строка:

olcRootPW: e1NTSEF9b1J2enI5cjFxUTdDbjN4Ti9lZm1lS0pRendTMHdLNno=..

НЕ заменяется на:

olcRootPW: {SSHA}oRvzr9r1qQ7Cn3xN/efmeKJQzwS0wK6z

Она остается прежней. Я открою для этого новый пост.

0
ответ дан 3 December 2019 в 20:05

Проверьте синтаксис вашего 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 довольно загадочны ...

2
ответ дан 3 December 2019 в 20:05

Теги

Похожие вопросы