[Date Prev][Date Next] [Chronological] [Thread] [Top]

Help me delete an incorrectly modified entry



I am using OpenLDAP 1.2.9 on RedHat 6.2 from the RedHat rpm openldap-1.2.9-6.

I was doing an ldapmodify by hand to modify a dn, I did not specify the
newrdn correctly, and now I am stuck.

The old dn was "cn=David L. Crow, ou=People, dc=waveset, dc=com" and I
want the new dn to be "cn=David Crow, ou=People, dc=waveset, dc=com", so
I did the following:

    $ ldapmodify -D cn=root,dc=waveset,dc=com -W << EOF
    > dn: cn=David L. Crow, ou=People, dc=waveset, dc=com
    > changetype: modrdn
    > newrdn: cn=David Crow, ou=People, dc=waveset, dc=com
    > deleteoldrdn: 1
    > EOF
    Enter LDAP Password:
    modifying rdn of entry cn=David L. Crow, ou=People, dc=waveset, dc=com
    modrdn completed

Unfortunately, I now know that the newrdn should have been just
"cn=David Crow".  My LDAP object now looks like (without phone numbers
and other somewhat sensitive information):

    cn=David Crow, ou=People, dc=waveset, dc=com, ou=People, dc=waveset, dc=com
    ou=People
    givenname=David
    objectclass=top
    objectclass=person
    objectclass=organizationalPerson
    objectclass=inetorgperson
    sn=Crow
    cn=David Crow

I could not do an ldapdelete or ldapmodify to correct this problem:

    $ ldapmodify -D cn=root,dc=waveset,dc=com -W << EOF
    > dn: cn=David Crow, ou=People, dc=waveset, dc=com, ou=People, dc=waveset, dc=com
    > changetype: modrdn
    > newrdn: cn=David Crow
    > deleteoldrdn: 1
    > EOF
    Enter LDAP Password:
    modifying rdn of entry cn=David Crow, ou=People, dc=waveset, dc=com, ou=People, dc=waveset, dc=com
    ldap_modrdn: Operations error

    $ ldapdelete -D cn=root,dc=waveset,dc=com -W << EOF
    > dn: cn=David Crow, ou=People, dc=waveset, dc=com, ou=People, dc=waveset, dc=com
    > EOF
    Enter LDAP Password:
    ldap_delete: No such object
    ldap_delete: matched: OU=PEOPLE,DC=WAVESET,DC=COM

So I figured the problem was that there were no objects for the additional
"ou=People, dc=waveset, dc=com", so I added them and now I get the error:

    $ ldapdelete -D cn=root,dc=waveset,dc=com -W << EOF
    > dn: cn=David Crow, ou=People, dc=waveset, dc=com, ou=People, dc=waveset, dc=com
    > EOF
    Enter LDAP Password:
    ldap_delete: No such object
    ldap_delete: matched: OU=PEOPLE,DC=WAVESET,DC=COM,OU=PEOPLE,DC=WAVESET,DC=COM

This seems better, but I still cannot delete or re-modify the record.
Does anyone have any hints or tips as to how to recover from this?
Hopefully something other than "restore from backup".  We have plenty of
backups, but I would hate to lose a days modifications to the directory
data.


-- 
 David L. Crow                     Texas!  It's like a
 crow@OrangeBlood.org              whole other country.