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

Re: slapd.ldif beginner



Hi Dan White and Peter Gietz.

Thank's for your kind pointers in the right direction.
Now I finally got it. :-)

My goal was to set up openldap using only the dynamic configuration style.
So I had to start from absolutely zero, everything else is considered cheating. :-)

One of the first obstacles was an error telling me that my database did not accept slapadd.
But it seems this error is not accurate because if I start by using a config.ldif that’s empty I get the same error.
Finally I figured out with the help of some logic of my own and using man pages for openldap that I had to be sure to set the correct user to my data directory as well as my /etc/openldap/*

Another problem loading my config.ldif is the slapadd command.
In several places the syntax was like this:
slapadd -d -1 -F /etc/openldap/slapd.d -F /etc/openldap/config.ldif
That is wrong, the correct syntax is like this:
slapadd -d -1 -F /etc/openldap/slapd.d -n 0 -l /etc/openldap/config.ldif

Next problem that showed up was hash sign #.
For some reason I had put # on line 1 in my config.ldif. This is a no no it turns out.
I also did use a line with only one # between the different blocks in my config, that also gave me problems.
So after removing all # from my config my config seemed to work but slapd still would not start.
I finally found out that the schema block was special.
Special in that regard that I had to have an empty line between schema block and the include command.

By the way, It seems ok to have a line start with a # then space then some text without getting in to trouble. Like this.
# This is a comment

So anyway this is my config.ldif.

dn: cn=config
objectClass: olcGlobal
cn: config
olcPidFile: /run/slapd.pid
olcArgsFile: /run/slapd.args
olcAttributeOptions: x-hidden lang-

dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/openldap
olcModuleload: back_bdb.la
olcModuleload: back_hdb.la
olcModuleload: back_ldap.la

dn: cn=schema,cn=config
objectClass: olcSchemaConfig
cn: schema

include: file:///etc/openldap/schema/core.ldif

dn: olcDatabase=frontend,cn=config
objectClass: olcDatabaseConfig
objectClass: olcFrontendConfig
olcDatabase: frontend 
olcAccess: to attrs=name;x-hidden by * =cs
olcAccess: to attrs=userPassword by * auth
olcAccess: to * by * read

dn: olcDatabase=config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: config
olcRootPW: secret
olcAccess: to * by * none

dn: olcDatabase=hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: hdb
olcSuffix: dc=example,dc=intra
olcDbDirectory: /srv/ldap/openldap-data
olcDbIndex: objectClass  eq
olcDbIndex: cn,sn,mail   pres,eq,approx,sub

So thank’s for your help and I my self consider this problem solved.

Regards
Sonny

19 feb 2014 kl. 20:07 skrev Dan White <dwhite@olp.net>:

> On 02/19/14 18:29 +0100, Sonny Taberman wrote:
>> Hi all ldap people.
>> I have been trying this new way of configuring a slapd server from scratch. Sorry to say total failure on my side. I'm not sure where to begin.
>> I have built a linux system from LFS Linux from scratch. So I want to install openldap from source, so far no problems.
>> When my installation is done i have a directory in /etc/ named openldap and the content inside is this:
>> 
>> DB_CONFIG.example
>> ldap.conf
>> ldap.conf.default
>> schema
>> slapd.conf
>> slapd.conf.default
>> slapd.ldif
>> slapd.ldif.default
>> 
>> To start configure my slapd using slapd.conf there is no problem. Actually I'm beginning to think I'm pretty good att this. :-)
>> But then I try to read all I can find about configure a new slapd using slapd.ldif, not that easy.
>> I understand that I need a new directory named slapd.d. After that I have no clue.
>> I guess something is hardcoded in slapd but what am I supposed to do next?
>> How can i communicate with slapd ? I guess I have to define a password somewhere for a manager or administrator but how and where?
>> Is there a tutorial somwhere ?
>> All I need is how to start. :-)
> 
> See slapd(8), slaptest(5), slapd-config(5), ldap.conf(5), and chapter 5 of
> the OpenLDAP Software 2.4 Administrator's Guide.
> 
> In short:
> 
> mkdir <path/to>/slapd.d
> chown user.group <path/to>/slapd.d
> chmod ? <path/to>/slapd.d
> # and assuming you want to bootstrap using a slapd.conf:
> slaptest -f <path/to>slapd.conf -F <path/to>/slapd.d
> 
> Create an init script that starts slapd with appropriate options, e.g.:
> 
> /usr/sbin/slapd -h "ldap:/// ldapi:///" -g openldap -u openldap -F /etc/ldap/slapd.d
> 
> It is not recommended to modify files underneath <path/to>/slapd.conf with
> a text editor, which you may be tempted to do. Use ldapadd/ldapmodify to
> make modifications, or use slapcat -n0 to create a portable representation
> of your config.
> 
> Search for documentation or discussion of SASL EXTERNAL authentication over
> ldapi:/// (using olcAuthzRegexp), to perform administrator (rootDN)
> changes.
> 
> -- 
> Dan White

Attachment: smime.p7s
Description: S/MIME cryptographic signature