ldapadd/ldapmodify:需要澄清这些命令

ldapadd/ldapmodify:需要澄清这些命令

手册ldapmodify页指出:

ldapmodify 的默认设置是修改现有条目

然而,当我尝试导入 LDIF 文件时,ldapmodify出现以下错误:

ldapmodify: modify operation type is missing at line X

Q1:为什么,我应该在 ldapmodify 命令中添加哪些参数?

如果我使用导入 LDIF 文件ldapadd并且条目已经存在,我会收到以下错误:

ldap_add: Already exists (68)

可以使用开关(继续)忽略此-c操作,但 ldap_add 不会更新现有条目。相反,为了更新现有条目,应该使用ldapmodify,但ldapmodify不会添加缺失条目。

问题 2:有没有办法通过创建缺失条目并同时更新现有条目来导入 LDIF 文件?

答案1

ldapmodify 的 ldif 语法与常规 ldif 不同。例如:如果您要添加值为“bar”的“foo”条目,则应按如下方式编写 ldif:

dn: cn=ToModify,dc=example,dc=com
changetype: Modify
add: foo
foo: bar

replace: mail
mail: [email protected]

delete: unneededEntry

此 ldif 将添加值为 bar 的属性 foo,并将 mail 属性更新为[电子邮件保护]并删除不需要的条目。然后调用 ldapmodify 命令。

ldapmodify -f update.ldif 

(如果需要其他选项,例如简单身份验证)

答案2

尝试 -a 开关

Add or modify options:
  -a         add values (default is to replace)

答案3

Goez 的回答看起来不错。

但是如果你不熟悉 ldif,那么使用

ldapvi

相反。您可以编辑已存在的条目或添加新的条目。

apt-get install ldapvi

相关内容