Ajout du schéma "sudo"
Il a été défini dans le cahier des charges de cette infrastructure LDAP de démonstration, que les utilisateurs de l’annuaire peuvent utiliser des commandes "sudo" dont la configuration sera centralisée et sécurisée directement dans l’annuaire. Et afin de pouvoir y créer ces entrées dans l’annuaire, il faut au préalable charger son propre schéma, car il est inexistant dans le package de base d’OpenLDAP. Pour réaliser cela, il suffira de récupérer un fichier LDIF proposé la plupart du temps sur le site officiel de l’application. Par exemple, ce schéma est délivré dans les sources du code "sudo" situé sur son site officiel (https://www.sudo.ws/download.html#source).
Voici ci-dessous la procédure à suivre avec un fichier schéma LDIF nommé /tmp/testdir/sudo.schema (voir annexe) :
1.	Créer les répertoires : /tmp/testdir et /tmp/testdir/config.	
2.	Créer le fichier : /tmp/testdir/test.conf et placer dans ce dossier le fichier sudo.schema précédemment récupéré.	
3.	Indiquer dans le fichier test.config la ligne : echo "include /tmp/testdir/sudo.schema" > /tmp/testdir/test.conf.	
4.	Exécuter depuis le dossier /tmp/testdir la commande :	
[root@ldap01 testdir]# slaptest -f test.conf -F config 
config file testing succeeded 
[root@ldap01 testdir]#
5.	Localiser et ouvrir le fichier sudo.ldif obtenu à l’aide d’un éditeur :	
[root@ldap01 testdir]# cd config 
[root@ldap01 config]# ls -lrt 
total 8 
-rw-------. 1 root root  986 Jul 21 19:09 cn=config.ldif 
drwxr-x---. 3 root root 4096 Jul 21 19:09 cn=config 
[root@ldap01 config]#cd cn=config/cn=schema 
[root@ldap01 cn=schema]# pwd 
/tmp/testdir/config/cn=config/cn=schema 
[root@ldap01 cn=schema]# ls -lrt 
total 4 
-rw-------. 1 root root 2618 Jul 21 19:09 cn={0}sudo.ldif 
[root@ldap01 cn=schema]# vi cn={0}sudo.ldif
6.	Modifier le fichier obtenu et effectuer les changements suivants :	
# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. 
# CRC32 57eaab28 
dn: cn={0}sudo             ### Remplacer par {X} ### 
objectClass: olcSchemaConfig 
cn: {0}sudo                ### Remplacer par {X} ### 
 
olcAttributeTypes: {0}( 1.3.6.1.4.1.15953.9.1.1 NAME ’sudoUser’ DESC ’User(s)  
 who may  run sudo’ EQUALITY caseExactIA5Match SUBSTR 
 caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) 
... 
... 
olcObjectClasses: {0}( 1.3.6.1.4.1.15953.9.2.1 NAME ’sudoRole’ DESC ’Sudoer En 
 tries’ SUP top STRUCTURAL MUST cn MAY ( sudoUser $ sudoHost $ 
sudoCommand $ s 
 udoRunAs $ sudoRunAsUser $ sudoRunAsGroup $ sudoOption $  
description ) ) 
structuralObjectClass: olcSchemaConfig 
 
####################################### 
### SUPPRIMER LES LIGNES SUIVANTES ### 
entryUUID: 1dedd0c8-c870-1036-93e1-1138f0c45d2d 
creatorsName: cn=config 
createTimestamp: 20170508192728Z 
entryCSN: 20170508192728.137591Z#000000#000#000000 
modifiersName: cn=config 
modifyTimestamp: 20170508192728Z 
######################################################
7.	Le placer dans le répertoire contenant les schémas.	
cp cn={0}sudo.ldif  /etc/openldap/slapd.d/cn=config/cn=schema/
cn={X}sudo.ldif
8.	Redémarrer le service "slapd".	
[root@ldap01 cn=schema]# service slapd restart 
Stopping slapd:                        [  OK  ] 
Starting slapd:                        [  OK  ] 
[root@ldap01 cn=schema]#
¬
Il est également possible de "pousser" le nouveau schéma par la commande ldapadd sans redémarrer le service "slapd" et en utilisant le fichier LDIF modifié, mais sans référence à un numéro d’ordre de version {X}... Cette méthode ne garantit toutefois pas que le schéma sera conservé au redémarrage du service.