ldapmodify手册页指出:
ldapmodify的默认值是修改现有的条目
然而,当我尝试导入与ldapmodify LDIF文件时,我得到了下面的错误:
ldapmodify: modify operation type is missing at line X
Q1:为什么我应该将这些参数添加到我的ldapmodify命令中?
如果我使用ldapadd导入一个LDIF文件并且该条目已经存在,那么我得到下面的错误:
ldap_add: Already exists (68)
使用-c开关可以忽略(继续),但ldap_add不会更新现有条目。 相反,为了更新现有的条目,应该使用ldapmodify ,但ldapmodify不会添加缺less的条目。
问题2:是否有办法通过创build缺失条目并同时更新现有条目来导入LDIF文件?
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将添加值为foo的属性,将邮件属性更新为[email protected]并删除不需要的项目。 然后调用ldapmodify命令。
ldapmodify -f update.ldif
(如果需要与其他选项,如简单的身份validation例如)
Goez的答案似乎很好。
但是,如果你不熟悉ldif,可以使用它
ldapvi
代替。 您可以编辑已有的条目或添加新的条目。
apt-get install ldapvi
试试-a开关
Add or modify options: -a add values (default is to replace)