Hi all, I have defined a DIT (LMDB) as follows:
dn: olcDatabase={3}mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: {3}mdb
olcDbDirectory: /var/lib/ldap/mycompany/o=mycompany
olcSuffix: o=mycompany
olcRootDN: uid=admin,ou=system
olcAccess: {0}to attrs=userPassword,shadowLastChange by
dn="uid=admin,ou=system" write by anonymous auth by self write by * none
olcAccess: {1}to * by dn="uid=admin,ou=system" write by * none
olcAddContentAcl: FALSE
olcLastMod: TRUE
olcMaxDerefDepth: 15
olcReadOnly: FALSE
olcSyncUseSubentry: FALSE
olcMonitoring: TRUE
olcDbEnvFlags: writemap
olcDbEnvFlags: nometasync
olcDbNoSync: FALSE
olcDbIndex: objectClass pres,eq
olcDbIndex: cn pres,eq,sub
olcDbIndex: uid pres,eq,sub
olcDbIndex: uidNumber pres,eq
olcDbIndex: gidNumber pres,eq
olcDbIndex: mail pres,eq,sub
olcDbIndex: ou pres,eq,sub
olcDbIndex: sn pres,eq,sub
olcDbIndex: givenName pres,eq,sub
olcDbIndex: loginShell pres,eq
olcDbIndex: memberUid pres,eq,sub
olcDbIndex: nisMapName pres,eq,sub
olcDbIndex: nisMapEntry pres,eq,sub
olcDbMaxReaders: 0
olcDbMaxSize: 4294967296
olcDbMode: 0600
olcDbSearchStack: 16
I can add the root entry as:
And I can also add and delete sub-entries under o=mycompany. But I can not delete the root entry o=mycompany, even there is no sub-entry below it.dn: o=mycompany objectClass: organization objectClass: top o: mycompany
Please no that the rootdn (uid=admin,ou=system) is not under the subffix (o=mycompany), that is why no rootPW is defined for this DIT. The rootDN and rootPW are defined in the second DIT (in BDB)
The weird thing was that I could search and found it:
ldapsearch -x -D uid=admin,ou=system -w XXXXXXXXX -H ldap://localhost:389 -b o=mycompany# extended LDIF # # LDAPv3 # base <o=cornerbank> with scope subtree # filter: (objectclass=*) # requesting: ALL # # mycompany dn: o=mycompany o: mycompany objectClass: organization objectClass: top # search result search: 2 result: 0 Success
But it would fail if I tried to delete it:
$ ldapdelete -x -D uid=admin,ou=system -w XXXXXXXXX -H ldap://localhost:389 o=mycompanyIn the other words, I could import the whole DIT for o=mycompany, but could not delete the whole DIT (the root entry o=mycompany could not be deleted). Does somebody know how to solve this problem? Thanks!ldap_delete: No such object (32) 32
Regards -- Hongfu Huang, Senior System Integrator M.Sc. Computer Science AdNovum Informatik AG Roentgenstrasse 22, 8005 Zurich, Switzerland phone +41 44 272 6111, direct +41 44 270 5266 [email protected], www.adnovum.ch Locations: Zurich (HQ), Bern, Lausanne, Budapest, Ho Chi Minh City, Singapore
