`ldapmodify` 不起作用——不会更改文件内容

`ldapmodify` 不起作用——不会更改文件内容

我正在按照此线程中的步骤进行操作: 使用 slapd.d 配置进行基本的 openldap 设置

我创建并保存了自己的 .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

检查 的语法changes.ldif。在我的示例中,有些行中只有一个。这些行表示 LDAP 操作(如或)-的数据块的结尾。addreplace

查看man 5 ldifRFC 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

我的问题的根源在于一行olcRootPW已经存在。这似乎导致了中止,因为以下两个replace命令都没有发生。

所以,眼前的问题已经解决。

然而……现在,olcRootDN 和 olcSuffix 已被正确替换。但是,现有行:

olcRootPW: e1NTSEF9b1J2enI5cjFxUTdDbjN4Ti9lZm1lS0pRendTMHdLNno=..

不会被替换为:

olcRootPW: {SSHA}oRvzr9r1qQ7Cn3xN/efmeKJQzwS0wK6z

一切依旧。我会为此开一个新帖子。

相关内容