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

`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: нет правила сопоставления равенства

Проверьте синтаксис вашего changes.ldif. В моем примере есть строки только с - там. Они обозначают конец блока данных для операции LDAP (например, add или replace).

Видеть 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 довольно загадочны ...

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

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

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

olcRootPW: e1NTSEF9b1J2enI5cjFxUTdDbjN4Ti9lZm1lS0pRendTMHdLNno=..

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

olcRootPW: {SSHA}oRvzr9r1qQ7Cn3xN/efmeKJQzwS0wK6z

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