Search code examples
openldaplmdb

OpenLDAP mdb backend


I try to setup an OpenLDAP Server with mdb backend. But neither the version from packet repository nor a self compiled version (to be shure that back_mdb is compiled into slapd) works for me.

Config database is accessible, log doesn't print any errors and the database file is created (data.mdb) - but my root (suffix) won't show up and isn't writeable.

A basic configuration suggested by the OpenLDAP administrator's guide won't help either.

My config:

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/inetorgperson.schema
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args

database    mdb
maxsize     1073741824
suffix      "dc=directory,dc=local"
rootdn      "cn=admin,dc=directory,dc=local"
rootpw      "{SSHA}Lh2sewmXFDo+bwc0Vqy12Xwc61n9sQ5t"
directory   /var/lib/openldap/openldap-data
index   objectClass eq
access to dn.subtree="ou=contacts,dc=directory,dc=local" by self write by dn="cn=server,ou=people,dc=directory,dc=local" write by dn="cn=phone,ou=people,dc=directory,dc=local" read
access to * by dn="cn=admin,dc=directory,dc=local" write by anonymous auth by dn.subtree="ou=people,dc=directory,dc=local" read by * none


database config
rootdn "cn=admin,cn=config"
rootpw "{SSHA}Lh2sewmXFDo+bwc0Vqy12Xwc61n9sQ5t"

Solution

  • I had to add the ldif to create my root dn on the localhost.

    Create LDIF file:

    dn: dc=directory,dc=local
    dc: directory
    o: directory.local
    objectClass: top
    objectClass: dcObject
    objectClass: organization
    structuralObjectClass: organization
    

    Add the LDIF file and recreate database index:

    slappadd -b "dc=directory,dc=local" -v -l basedn.ldif
    slapindex
    

    Start the ldap daemon and there it is: my root dn.