Here is how to bootstrap OpenLDAP’s slapd with an absolutely minimal configuration, without needing an intermediate slapd.conf, with one feature — the local root user (uid=0/gid=0) has “manage” access. From this point, ldapmodify can be used via ldapi to continue making configuration changes. This is a good way to start a new server configuration.
Bootstrap:
$> echo 'dn: cn=config objectClass: olcGlobal cn: config dn: olcDatabase={0}config,cn=config objectClass: olcDatabaseConfig olcDatabase: {0}config olcAccess: to dn.subtree="cn=config" by dn=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by * none ' | slapadd -n0 -F slapd.d
Start slapd:
#> slapd -F slapd.d -h ldapi://foo
Make changes via ldapmodify:
#> ldapmodify -Y EXTERNAL -H ldapi://foo ...