<Précédent | Table des matières | Suivant>
1.4. Modification de la base de données de configuration slapd
Le DIT slapd-config peut également être interrogé et modifié. Voici quelques exemples.
• Utilisez ldapmodify pour ajouter un "Index" (attribut DbIndex) à votre base de données {1}mdb,cn=config (dc=example,dc=com). Créez un fichier, appelez-le uid_index.ldif, avec le contenu suivant:
dn : olcDatabase={1}mdb,cn=config ajouter : olcDbIndex
olcDbIndex : mail eq, sous
Ensuite, lancez la commande :
sudo ldapmodify -Q -Y EXTERNE -H ldapi:/// -f uid_index.ldif
modification de l'entrée "olcDatabase={1}mdb,cn=config"
Vous pouvez confirmer le changement de cette manière :
sudo ldapsearch -Q -LLL -Y EXTERNE -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
• Ajoutons un schéma. Il devra d'abord être converti au format LDIF. Vous pouvez trouver des schémas non convertis en plus de ceux convertis dans le /etc/ldap/schéma répertoire.
• Il n'est pas anodin de supprimer un schéma de la base de données slapd-config. Entraînez-vous à ajouter des schémas sur un système de test.
• Avant d'ajouter un schéma, vous devez vérifier quels schémas sont déjà installés (il s'agit d'une sortie par défaut prête à l'emploi) :
sudo ldapsearch -Q -LLL -Y EXTERNE -H ldapi:/// -b \ cn=schema,cn=config dn
dn : cn=schéma,cn=config
dn : cn={0}core,cn=schema,cn=config
dn : cn={1}cosinus,cn=schema,cn=config
dn : cn={2}nis,cn=schema,cn=config
dn : cn={3}inetorgperson,cn=schema,cn=config
Dans l'exemple suivant, nous allons ajouter le schéma CORBA.
1. Créez le fichier de configuration de conversion schéma_convert.conf contenant les lignes suivantes :
inclure /etc/ldap/schema/core.schema inclure /etc/ldap/schema/collective.schema inclure /etc/ldap/schema/corba.schema inclure /etc/ldap/schema/cosine.schema inclure /etc/ldap/ schema/duaconf.schema inclure /etc/ldap/schema/dyngroup.schema
inclure /etc/ldap/schema/inetorgperson.schema inclure /etc/ldap/schema/java.schema
inclure /etc/ldap/schema/misc.schema inclure /etc/ldap/schema/nis.schema inclure /etc/ldap/schema/openldap.schema inclure /etc/ldap/schema/ppolicy.schema inclure /etc/ldap/ schema/ldapns.schema inclure /etc/ldap/schema/pmi.schema
2. Créez le répertoire de sortie ldif_sortie.
3. Déterminez l'index du schéma :
slapcat -f schema_convert.conf -F ldif_output -n 0 | grep corba,cn=schéma
cn={2}corba,cn=schéma,cn=config
Lorsque slapd ingère des objets avec le même DN parent, il crée un indice pour cet objet. Un index est contenu entre accolades : {X}.
4. Utilisez slapcat pour effectuer la conversion :
slapcat -f schema_convert.conf -F ldif_output -n0 -H \ ldap:///cn={2}corba,cn=schema,cn=config -l cn=corba.ldif
Le schéma converti est maintenant dans cn=corba.ldif
5. modifier cn=corba.ldif pour arriver aux attributs suivants :
dn : cn=corba,cn=schéma,cn=config
cn : corba
Supprimez également les lignes suivantes du bas :
structuralObjectClass: olcSchemaConfig entryUUID: 52109a02-66ab-1030-8be2-bbf166230478
créateursName : cn=config createTimestamp : 20110829165435Z
entréeCSN : 20110829165435.935248Z#000000#000#000000
modifiersName : cn=config modifyTimestamp : 20110829165435Z
Les valeurs de vos attributs varieront.
6. Enfin, utilisez ldapadd pour ajouter le nouveau schéma au DIT slapd-config :
sudo ldapadd -Q -Y EXTERNE -H ldapi:/// -f cn\=corba.ldif
ajout d'une nouvelle entrée "cn=corba,cn=schema,cn=config"
7. Confirmez les schémas actuellement chargés :
sudo ldapsearch -Q -LLL -Y EXTERNE -H ldapi:/// -b cn=schema,cn=config dn
dn : cn=schéma,cn=config
dn : cn={0}core,cn=schema,cn=config
dn : cn={1}cosinus,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=schéma,cn=config
Pour que les applications externes et les clients s'authentifient à l'aide de LDAP, ils devront chacun être spécifiquement configurés pour le faire. Reportez-vous à la documentation côté client appropriée pour plus de détails.