8

The ldapmodify man page states that:

The default for ldapmodify is to modify existing entries

Yet when I try to import an LDIF file with ldapmodify I get the below error:

ldapmodify: modify operation type is missing at line X

Q1: Why, which arguments should I add to my ldapmodify command?

If I import an LDIF file using ldapadd and the entry already exists I get the below error:

ldap_add: Already exists (68)

This can be ignored using the -c switch (for continue), however ldap_add won't update existing entries. Instead, in order to update existing entries one should use ldapmodify, however ldapmodify won't add missing entries.

Q2: Is there a way to import an LDIF files by creating missing entries AND updating existing ones at the same time?

3 Answers 3

14

The ldif for ldapmodify has a different syntax than a regular ldif. For example: if you want to add the 'foo' entry with value 'bar' you should write your ldif like this:

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

replace: mail
mail: [email protected]

delete: unneededEntry

This ldif will add the attribute foo with value bar, update the mail attribute to [email protected] and delete the unneededEntry. then invoke the ldapmodify command.

ldapmodify -f update.ldif 

(if needed with other options like simple auth for example)

3
  • Thanks. Are you able to comment on Q2 at all?
    – Max
    Commented Jul 14, 2011 at 12:39
  • As far as I know this is not possible, therefore u have the 2 tools... ldapmodify for existing entries, ldapadd to add new ones.
    – Goez
    Commented Jul 14, 2011 at 13:21
  • That's also the impression that I was getting. Since I don't have to preserve the existing LDAP content before doing the import, I'm going to purge LDAP with ldapdelete then import the LDIF with slapadd.
    – Max
    Commented Jul 14, 2011 at 13:27
2

Try the -a switch

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

Goez answer seems fine.

However if you are unfamiliar with ldif it can make sense to use

ldapvi

instead. You can edit already existing entries or add new ones.

apt-get install ldapvi
1
  • 1
    Thanks but it doesn't scale up. For individual entry editing I'd much rather use something like this directory.apache.org/studio.
    – Max
    Commented Jul 14, 2011 at 12:58

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .