ldapadd/ldapmodify:需要对这些命令进行说明

Max*_*Max 7 openldap ldap ldif ubuntu-10.04

ldapmodify手册页指出:

ldapmodify 的默认值是修改现有条目

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

ldapmodify: modify operation type is missing at line X
Run Code Online (Sandbox Code Playgroud)

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

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

ldap_add: Already exists (68)
Run Code Online (Sandbox Code Playgroud)

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

Q2:有没有办法通过创建丢失的条目并同时更新现有条目来导入 LDIF 文件?

Goe*_*oez 13

ldapmodify 的 ldif 具有与常规 ldif 不同的语法。例如:如果您想添加值为 'bar' 的 'foo' 条目,您应该像这样编写 ldif:

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

replace: mail
mail: new@email.com

delete: unneededEntry
Run Code Online (Sandbox Code Playgroud)

此 ldif 将添加值为 bar 的属性 foo,将邮件属性更新为 new@email.com 并删除 unneededEntry。然后调用 ldapmodify 命令。

ldapmodify -f update.ldif 
Run Code Online (Sandbox Code Playgroud)

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