1.4. Ändern der slapd-Konfigurationsdatenbank
Das slapd-config DIT kann ebenfalls abgefragt und geändert werden. Hier ein paar Beispiele.
• Verwenden Sie ldapmodify, um einen „Index“ (DbIndex-Attribut) zu Ihrer {1}mdb,cn=config-Datenbank (dc=example,dc=com) hinzuzufügen. Erstellen Sie eine Datei und rufen Sie sie auf uid_index.ldifmit folgenden Inhalten:
dn: olcDatabase={1}mdb,cn=config add: olcDbIndex
olcDbIndex: mail eq,sub
Geben Sie dann den Befehl aus:
sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f uid_index.ldif
Änderung des Eintrags „olcDatabase={1}mdb,cn=config“
Sie können die Änderung folgendermaßen bestätigen:
sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b \ cn=config '(olcDatabase={1}mdb)' olcDbIndex
dn: olcDatabase={1}mdb,cn=config olcDbIndex: objectClass eq olcDbIndex: cn,uid eq
olcDbIndex: uidNumber,gidNumber eq olcDbIndex: member,memberUid eq olcDbIndex: mail eq,sub
• Fügen wir ein Schema hinzu. Es muss zunächst in das LDIF-Format konvertiert werden. Sie finden neben den konvertierten auch nicht konvertierte Schemata im /etc/ldap/schema Verzeichnis.
• Es ist nicht trivial, ein Schema aus der slapd-config-Datenbank zu entfernen. Üben Sie das Hinzufügen von Schemata auf einem Testsystem.
• Bevor Sie ein Schema hinzufügen, sollten Sie überprüfen, welche Schemas bereits installiert sind (dargestellt ist eine standardmäßige, sofort einsatzbereite Ausgabe):
sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b \ cn=schema,cn=config dn
dn: cn=schema,cn=config
dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config
dn: cn={2}nis,cn=schema,cn=config
dn: cn={3}inetorgperson,cn=schema,cn=config
Im folgenden Beispiel fügen wir das CORBA-Schema hinzu.
1. Erstellen Sie die Konvertierungskonfigurationsdatei schema_convert.conf enthält die folgenden Zeilen:
include /etc/ldap/schema/core.schema include /etc/ldap/schema/collective.schema include /etc/ldap/schema/corba.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/ schema/duaconf.schema enthält /etc/ldap/schema/dyngroup.schema
include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/java.schema
include /etc/ldap/schema/misc.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/openldap.schema include /etc/ldap/schema/ppolicy.schema include /etc/ldap/ schema/ldapns.schema enthält /etc/ldap/schema/pmi.schema
2. Erstellen Sie das Ausgabeverzeichnis ldif_output.
3. Bestimmen Sie den Index des Schemas:
slapcat -f schema_convert.conf -F ldif_output -n 0 | grep corba,cn=schema
cn={2}corba,cn=schema,cn=config
Wenn slapd Objekte mit demselben übergeordneten DN aufnimmt, wird ein erstellt Index für dieses Objekt. Ein Index ist in geschweiften Klammern enthalten: {X}.
4. Verwenden Sie slapcat, um die Konvertierung durchzuführen:
slapcat -f schema_convert.conf -F ldif_output -n0 -H \ ldap:///cn={2}corba,cn=schema,cn=config -l cn=corba.ldif
Das konvertierte Schema ist jetzt verfügbar cn=corba.ldif
5. Bearbeiten cn=corba.ldif um zu den folgenden Attributen zu gelangen:
dn: cn=corba,cn=schema,cn=config
...
cn: corba
Entfernen Sie außerdem die folgenden Zeilen von unten:
structuralObjectClass: olcSchemaConfig entryUUID: 52109a02-66ab-1030-8be2-bbf166230478
Erstellername: cn=config createTimestamp: 20110829165435Z
EintragCSN: 20110829165435.935248Z#000000#000#000000
modifiersName: cn=config changesTimestamp: 20110829165435Z
Ihre Attributwerte variieren.
6. Verwenden Sie abschließend ldapadd, um das neue Schema zum DIT slapd-config hinzuzufügen:
sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f cn\=corba.ldif
Hinzufügen eines neuen Eintrags „cn=corba,cn=schema,cn=config“
7. Bestätigen Sie die aktuell geladenen Schemata:
sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn
dn: cn=schema,cn=config
dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config
dn: cn={2}nis,cn=schema,cn=config
dn: cn={3}inetorgperson,cn=schema,cn=config
dn: cn={4}corba,cn=schema,cn=config
Damit sich externe Anwendungen und Clients über LDAP authentifizieren können, müssen sie jeweils speziell dafür konfiguriert werden. Weitere Informationen finden Sie in der entsprechenden clientseitigen Dokumentation.