# Siehe Manpage slapd.conf(5) und
# http://www.openldap.org/doc/admin/

### Schemadaten einbinden ###

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/qmail.schema
include /etc/openldap/schema/samba.schema

### SSL-Zertifikat laden ###

TLSCertificateFile      /etc/openldap/server.pem
TLSCertificateKeyFile   /etc/openldap/server.pem
TLSCACertificateFile    /etc/openldap/server.pem

### Falls SASL-Authentifizierung benutzt wird: ###

sasl-host lxserver.labnet
sasl-realm LABNET

### Definition für die Datenbank ###

database        ldbm
suffix          "dc=labnet,dc=de"
#
# Der privilegierte Account darf in dieser Datenbank
# alles lesen und schreiben. Nicht zu verwechseln mit
# dem Sysuser root, der im Verzeichnis eingetragen
# ist und dem mit ACL seine Rechte zugewiesen werden
rootdn          "cn=Root,dc=labnet,dc=de"
rootpw          {SSHA}TVD1dvaqvtSnfyZX/7nnl26pOuteFXh3
#
# Das Verzeichnis *muss* existieren, bevor slapd
# gestartet wird und sollte nur für slapd lesbar sein
directory       /var/lib/ldap
#
# Index Definition
index   objectClass     eq

### Definition der Access Control List (ACL) ###

# User darf eigene Attribute ändern,
# alle andere sehen nichts
access to attr=loginShell
       by dn="uid=Admin,ou=Sysusers,ou=NSS,dc=labnet,dc=de" write
       by self write
       by * none
#
# User darf eigene Attribute ändern,
# authentifizierte User lesen
# alle andere sehen nichts
access to attr=telephoneNumber,seeAlso,description,audio,businessCategory,carLicense,displayName,homePhone,homePostalAddress,jpegPhoto,labeledURI,mobile,pager,photo,homeTelephoneNumber,favouriteDrink
       by dn="uid=Admin,ou=Sysusers,ou=NSS,dc=labnet,dc=de" write
       by self write
       by users read
       by * none
#
# User darf eigene Attribute ändern,
# alle andere können lesen
access to attr=dc,o,ou,uid,cn,givenName,sn,gecos,initials,title,photo,mail
       by dn="uid=Admin,ou=Sysusers,ou=NSS,dc=labnet,dc=de" write
       by self write
       by * read
#
# User darf eigene Passwörter ändern.
# anonymous auth macht nur für userPasswort Sinn,
# stört sonst aber nicht.
# Der Samba Server muss hier schreibrecht haben!
access to attr=userPassword,lmPassword,ntPassword
       by dn="uid=Admin,ou=Sysusers,ou=NSS,dc=labnet,dc=de" write
       by self write
       by anonymous auth
       by * none
#
# User darf eigene Attribute lesen,
# alle andere sehen nichts
access to attr=accountStatus,mailQuota,registeredAddress
       by dn="uid=Admin,ou=Sysusers,ou=NSS,dc=labnet,dc=de" write
       by self read
       by * none
#
# Grundregel, damit annonyme User das Verzeichnis
# durchsuchen können
access to attr=entry,objectClass
       by dn="uid=Admin,ou=Sysusers,ou=NSS,dc=labnet,dc=de" write
       by * read
#
# Default Policy: wenn keine der oben angelegten
# Regeln zieht, dürfen authentifizierte User lesen
# und alle anderen sehen nichts.
access to * by dn="uid=Admin,ou=Sysusers,ou=NSS,dc=labnet,dc=de" write
       by users read
       by * none