13.3 Utilisation des outils LDAP sous Linux

eDirectory inclut les outils LDAP suivants, stockés dans /opt/novell/eDirectory/bin, afin de vous aider à gérer le serveur d'annuaire LDAP.

Outil

Description

ice

Importe les entrées d'un fichier vers un annuaire LDAP, modifie les entrées d'un fichier dans un annuaire, exporte les entrées vers un fichier et ajoute des définitions de classes et d'attributs à partir d'un fichier.

ldapadd

Ajoute de nouvelles entrées à un annuaire LDAP.

ldapdelete

Supprime les entrées d'un serveur d'annuaire LDAP. L'outil ldapdelete ouvre une connexion vers un serveur LDAP, crée une liaison et supprime une ou plusieurs entrées.

ldapmodify

Ouvre une connexion à un serveur LDAP, crée une liaison et modifie ou ajoute des entrées.

ldapmodrdn

Modifie le nom distinctif relatif (RDN) d'entrées d'un serveur d'annuaire LDAP. Ouvre une connexion à un serveur LDAP, crée une liaison et modifie le nom distinctif relatif des entrées.

ldapsearch

Recherche des entrées dans un serveur d'annuaire LDAP. Ouvre une connexion à un serveur LDAP, crée une liaison et effectue une recherche à l'aide du filtre spécifié. Ce filtre doit correspondre à la représentation de type chaîne définie pour les filtres LDAP dans le fichier RFC 2254.

ndsindex

Crée, liste, suspend, reprend ou supprime des index.

Pour plus d'informations, reportez-vous à la section LDAP Tools (Outils LDAP) dans le document LDAP Libraries for C Doc (Documentation des bibliothèques LDAP pour C).

Pour effectuer des opérations sécurisées avec les outils LDAP, reportez-vous à la section Opérations eDirectory sécurisées sur des ordinateurs Linux et insérez le fichier DER dans toutes les opérations LDAP à ligne de commande qui établissent des connexions LDAP sécurisées vers eDirectory.

13.3.1 Outils LDAP

Les utilitaires LDAP permettent de supprimer, modifier et ajouter des entrées, d'étendre le schéma, de modifier les noms distinctifs relatifs, de déplacer des entrées dans de nouveaux conteneurs, de créer des index de recherche et d'effectuer des recherches.

REMARQUE :conformément à la demande de commentaires RFC 2256, l'interface LDAP d'eDirectory n'autorise les liaisons qu'avec des mots de passe de 128 caractères au maximum. En outre, lorsqu'ils sont configurés via le protocole LDAP, les mots de passe ne peuvent comporter qu'un maximum de 128 caractères.

ldapadd

L'utilitaire ldapadd ajoute de nouvelles entrées. Sa syntaxe est la suivante :

ldapadd [-c] [-C] [-l] [-M] [-P] [-r] [-n] [-v] [-F] [-l limit] [-M[M]] [-d  debuglevel] [-e key filename] [-D  binddn] [[-W]| [-w passwd]] [-h  ldaphost] [-p ldapport] [-P version] [-Z[Z]] [-f file]

Si l'option -f est spécifiée, ldapadd lit les modifications dans un fichier. Si l'option -f n'est pas spécifiée, ldapadd lit les modifications dans stdin.

INDICATION :le résultat des utilitaires LDAP est envoyé à stdout. Si vous quittez l'utilitaire avant de pouvoir consulter les résultats, redirigez ces derniers vers un fichier. Par exemple, ldapadd [options] > out.txt.

Option

Description

-a

Ajoute de nouvelles entrées. L'action par défaut de ldapmodify est de modifier des entrées existantes. S'il est appelé sous la forme ldapadd, cet indicateur est toujours paramétré.

-r

Remplace les valeurs existantes par défaut.

-c

Mode de fonctionnement continu. Des erreurs sont signalées, mais ldapmodify continue les modifications. L'action par défaut est de quitter une fois chaque erreur signalée.

-f file

Lit les informations de modification de l'entrée à partir d'un fichier LDIF et non de l'entrée standard. La longueur maximale des enregistrements est de 4 096 lignes.

-F

Impose l'application de toutes les modifications, quel que soit le contenu des lignes d'entrée qui commencent par replica:. Par défaut, les lignes replica: sont comparées à l'hôte et au port du serveur LDAP utilisés pour décider si un enregistrement replog doit être appliqué.

Options communes à tous les outils LDAP

Certaines options sont communes à tous les outils LDAP. Elles sont présentées dans le tableau suivant :

Option

Description

-C

Active le suivi de renvoi (liaison anonyme).

-d niveau_débogage

Définit le niveau de débogage LDAP sur niveau_débogage. Pour que cette fonction ait un effet quelconque, l'outil ldapmodify doit être compilé avec une valeur définie pour LDAP_DEBUG.

-D binddn

Utilise DN_liaison pour établir une liaison avec l'annuaire LDAP. DN_liaison doit être un nom distinctif représenté par une chaîne conformément à la convention RFC 1779.

-e nom_fichier_clé

Stocke le nom de fichier du certificat pour la liaison SSL.

-f file

Lit une série de lignes du fichier, en effectuant une recherche LDAP par ligne. Dans ce cas, le filtre spécifié sur la ligne de commande sert de modèle, la première occurrence de %s étant remplacée par une ligne du fichier. Si le fichier se résume à un tiret (-), les lignes sont lues depuis l'entrée standard.

-h ldaphost

Définit un autre hôte sur lequel le serveur LDAP est exécuté.

-l limite

Définit le timeout de la connexion (en secondes).

-M

Active la commande Gérer DSA IT (non critique).

-MM

Active la commande Gérer DSA IT (critique).

-n

Indique les conséquences de cette opération sans modifier réellement les entrées. Utile pour le débogage conjointement avec l'option -v.

-p port_LDAP

Spécifie un autre port TCP™ sur lequel le serveur LDAP écoute.

-P version

Spécifie la version de LDAP (2 ou 3).

-v

Utilise le mode verbeux avec un grand nombre de diagnostics écrits dans la sortie standard.

-w passwd

Utilise mot_de_passe comme mot de passe pour l'authentification simple.

-M

Invite à une authentification simple. Cette option est utilisée au lieu d'indiquer le mot de passe sur la ligne de commande.

-Z

Démarre TLS avant la liaison pour effectuer l'opération. Toute erreur survenant au cours du démarrage de TLS est ignorée et l'opération se poursuit. Il est recommandé d'utiliser plutôt l'option -ZZ qui permet d'annuler l'opération en cas d'erreur.

Si vous indiquez un port avec cette option, il doit accepter les connexions en texte clair.

Pour vérifier l'identité du serveur, utilisez cette option en association avec l'option -e afin de spécifier un fichier de certificat de serveur. Ainsi, le certificat de racine approuvée du serveur est validé au démarrage de TLS. Si l'option -e n'est pas spécifiée, tous les certificats du serveur sont acceptés.

-ZZ

Démarre TLS avant la liaison pour effectuer l'opération. Toute erreur survenant au cours du démarrage de TLS entraîne l'interruption de l'opération.

Si vous indiquez un port avec cette option, il doit accepter les connexions en texte clair.

Pour vérifier l'identité du serveur, utilisez cette option en association avec l'option -e afin de spécifier un fichier de certificat de serveur. Ainsi, le certificat de racine approuvée du serveur est validé au démarrage de TLS. Si l'option -e n'est pas spécifiée, tous les certificats du serveur sont acceptés.

Exemples

Supposons que le fichier /tmp/entrymods existe et contienne les éléments suivants :

dn: cn=Modify Me, o=University of Michigan, c=US
changetype: modify
replace: mail
mail: modme@terminator.rs.itd.umich.edu
-
add: title
title: Manager
-
add: jpegPhoto
jpegPhoto: /tmp/modme.jpeg
-
delete: description
-

Dans ce cas, la commande ldapmodify -b -r -f /tmp/entrymods remplace le contenu de l'attribut de messagerie de l'entrée Modify Me par la valeur modme@terminator.rs.itd.umich.edu, ajoute le titre Manager, ainsi que le contenu du fichier /tmp/modme.jpeg (jpegPhoto) et supprime complètement l'attribut de description.

Vous pouvez apporter les mêmes modifications que ci-dessus en utilisant l'ancien format d'entrée ldapmodify :

cn=Modify Me, o=University of Michigan, c=US
mail=modme@terminator.rs.itd.umich.edu
+title=Manager
+jpegPhoto=/tmp/modme.jpeg
-description

et la commande :

ldapmodify -b -r -f /tmp/entrymods

Supposons que le fichier /tmp/newentry existe et contienne les éléments suivants :

dn: cn=Barbara Jensen, o=University of Michigan, c=US
objectClass: person
cn: Barbara Jensen
cn: B Jensen
sn: Jensen
title: Manager
mail: bjensen@terminator.rs.itd.umich.edu
uid: bjensen

Dans ce cas, la commande ldapadd -f /tmp/entrymods ajoute une nouvelle entrée pour B Jensen, en utilisant les valeurs du fichier /tmp/newentry.

Supposons que le fichier /tmp/newentry existe et contienne les éléments suivants :

dn: cn=Barbara Jensen, o=University of Michigan, c=US
changetype: delete

Dans ce cas, la commande ldapmodify -f /tmp/entrymods supprime l'entrée B Jensen.

ldapdelete

L'utilitaire ldapdelete supprime l'entrée spécifiée. Il ouvre une connexion à un serveur LDAP, crée une liaison et supprime l'entrée. Sa syntaxe est la suivante :

ldapdelete [-n] [-v] [-c] [-r] [-l] [-C] [-M] [-d debuglevel] [-e key filename] [-f file] [-D binddn] [[-W]| [-w passwd]] [-h ldaphost] [-p ldapport] [-Z[Z]] [dn]...

Le paramètre dn est la liste des noms distinctifs des entrées à supprimer.

Il interagit avec l'option -f de l'une des façons suivantes :

  • Si l'option -f n'apparaît pas dans la ligne de commande mais que les DN sont spécifiés, l'utilitaire supprime les entrées spécifiées.

  • Si les DN et l'option -f sont tous deux spécifiés dans la ligne de commande, l'utilitaire cherche dans le fichier les DN à supprimer et ignore ceux de la ligne de commande.

  • Si les DNet l'option -f sont tous deux manquants dans la ligne de commande, l'utilitaire lit le DN dans stdin.

INDICATION :le résultat des utilitaires LDAP est envoyé à stdout. Si vous quittez l'utilitaire avant de pouvoir consulter les résultats, redirigez ces derniers vers un fichier, par exemple, ldapdelete [options] > out.txt.

Option

Description

-c

Mode de fonctionnement continu. Des erreurs sont signalées, mais ldapdelete continue les suppressions. L'action par défaut est de quitter une fois chaque erreur signalée.

-f file

(fichier) Lit une série de lignes du fichier, en réalisant une recherche LDAP pour chaque ligne. Dans ce cas, le filtre spécifié sur la ligne de commande sert de modèle, la première occurrence de %s étant remplacée par une ligne du fichier.

-r

Suppression récursive.

REMARQUE :pour plus d'informations sur les options communes, reportez-vous à la section Options communes à tous les outils LDAP.

Exemple

La commande ldapdelete "cn=Delete Me, o=University of Michigan, c=US" tente de supprimer l'entrée dont le nom commun est Delete Me directement sous l'entrée organisationnelle University of Michigan. Dans ce cas, il sera probablement nécessaire de fournir un DN de liaison (binddn) et un mot de passe (passwd) pour autoriser la suppression (reportez-vous aux options -D et -w).

ldapmodify

L'utilitaire ldapmodify modifie les attributs d'une entrée existante ou ajoute de nouvelles entrées. Sa syntaxe est la suivante :

ldapmodify [-a] [-c] [-C] [-M] [-P] [-r] [-n] [-v] [-F] [-l limit] [-M[M]] [-d debuglevel] [-e key filename] [-D binddn] [[-W]|[-w passwd]] [-h ldaphost] [-p ldap-port] [-P version] [-Z[Z]] [-f file]

Si l'option -f est spécifiée, ldapmodify lit les modifications dans un fichier. Si l'option -f n'est pas spécifiée, ldapmodify lit les modifications dans stdin.

INDICATION :le résultat des utilitaires LDAP est envoyé à stdout. Si vous quittez l'utilitaire avant de pouvoir consulter les résultats, redirigez ces derniers vers un fichier. Par exemple, ldapmodify [options] > out.txt.

Option

Description

-a

Ajoute de nouvelles entrées. L'action par défaut de ldapmodify est de modifier des entrées existantes. S'il est appelé sous la forme ldapadd, cet indicateur est toujours paramétré.

-r

Remplace les valeurs existantes par défaut.

-c

Mode de fonctionnement continu. Des erreurs sont signalées, mais ldapmodify continue les modifications. L'action par défaut est de quitter une fois chaque erreur signalée.

-f file

Lit les informations de modification de l'entrée à partir d'un fichier LDIF et non de l'entrée standard. La longueur maximale des enregistrements est de 4 096 lignes.

-F

Impose l'application de toutes les modifications, quel que soit le contenu des lignes d'entrée qui commencent par replica:. Par défaut, les lignes replica: sont comparées à l'hôte et au port du serveur LDAP utilisés pour décider si un enregistrement replog doit être appliqué.

REMARQUE :pour plus d'informations sur les options communes, reportez-vous à la section Options communes à tous les outils LDAP.

ldapmodrdn

L'utilitaire ldapmodrdn modifie le nom distinctif relatif d'une entrée. L'entrée peut également être déplacée vers un nouveau conteneur. Sa syntaxe est la suivante :

ldapmodrdn [-r] [-n] [-v] [-c] [-C] [-l] [-M] [-s newsuperior] [-d debuglevel] [-e key filename] [-D binddn] [[-W]|[-w  passwd]]  [-h ldaphost] [-p ldapport] [-Z[Z]] [-f file] [dn newrdn]

REMARQUE :le résultat des utilitaires LDAP est envoyé à stdout. Si vous quittez l'utilitaire avant de pouvoir consulter les résultats, redirigez ces derniers vers un fichier. Par exemple, ldapmodrdn [options] > out.txt.

Option

Description

-c

Mode de fonctionnement continu. Des erreurs sont signalées, mais ldapmodify continue les modifications. L'action par défaut est de quitter une fois chaque erreur signalée.

-f file

(fichier) Lit les informations de modification d'entrée depuis le fichier et non à partir de l'entrée standard ou de la ligne de commande. Veillez à ce qu'il n'y ait pas de ligne vide entre l'ancien et le nouveau RDN, sinon l'option -f n'est pas prise en compte.

-r

Retire les anciennes valeurs RDN de l'entrée. Par défaut, les anciennes valeurs sont conservées.

-s nouveau_supérieur

Nom distinctif du conteneur vers lequel l'entrée est déplacée.

REMARQUE :pour plus d'informations sur les options communes, reportez-vous à la section Options communes à tous les outils LDAP.

Exemple

Supposons que le fichier /tmp/entrymods existe et contienne les éléments suivants :

cn=Modify Me, o=University of Michigan, c=US
cn=The New Me

ldapsearch

L'utilitaire ldapsearch recherche des attributs et classes d'objet spécifiés dans le répertoire. Sa syntaxe est la suivante :

ldapsearch [-n] [-u] [-v] [-t] [-A] [-T] [-C] [-V] [-M] [-P] [-L] [-d debuglevel] [-e key filename] [-f file] [-D binddn] [[-W]| [-w bindpasswd]] [-h ldaphost] [-p ldapport] [-b searchbase] [-s scope] [-a deref] [-l time limit] [-z size limit] [-Z[Z]] filter [attrs....]

L'outil ldapsearch établit une connexion à un serveur LDAP, effectue la liaison et lance une recherche à l'aide du filtre. Ce filtre doit correspondre à la représentation de type chaîne définie pour les filtres LDAP dans la demande de commentaires RFC 2254.

Si ldapsearch trouve une ou plusieurs entrées, les attributs définis par attrs sont récupérés et les entrées et leurs valeurs sont affichées dans la sortie standard. Si aucun attribut n'est répertorié, tous les attributs sont renvoyés.

INDICATION :le résultat des utilitaires LDAP est envoyé à stdout. Si vous quittez l'utilitaire avant de pouvoir consulter les résultats, redirigez ces derniers vers un fichier. Par exemple, ldapsearch [options] filter [attribute list] > out.txt.

Option

Description

-a suppr_réf

Indique comment gérer la suppression des références aux alias. Elle utilise les valeurs suivantes :

  • Jamais : les références aux alias ne sont jamais supprimées lors de la localisation de l'objet de base ou de la recherche.

  • Toujours : les références aux alias sont toujours supprimées lors de la localisation de l'objet de base et de la recherche.

  • Rechercher : les références aux alias sont supprimées lors de la recherche de subordonnés de l'objet de base, mais pas lors de la localisation de l'objet de base.

  • Trouver : les références aux alias sont supprimées lors de la localisation de l'objet de base, mais pas lors de la recherche de ses subordonnés.

-Un fichier

Récupère uniquement des attributs (aucune valeur). Cette fonction est utile lorsque vous voulez savoir si un attribut figure dans une entrée et que les valeurs elles‑mêmes ne vous intéressent pas.

-CC

Active le suivi de renvoi (liaison authentifiée avec DN de liaison et mot de passe identiques).

-b base_recherche

Utilisez base_recherche comme point de départ de la recherche.

-L

Affiche les entrées au format LDIF.

-LL

Affiche les entrées au format LDIF sans commentaires.

-LLL

Affiche les entrées au format LDIF sans commentaires ni version.

-s étendue

Définit l'étendue de la recherche. L'étendue peut être base, one ousub pour spécifier une recherche portant respectivement sur un objet de base, sur un seul niveau ou sur une sous-arborescence. La valeur par défaut est sub.

-S attribut

Trie les entrées renvoyées selon l'attribut. Par défaut, les entrées renvoyées ne sont pas triées. Si l'attribut est une chaîne vide (« »), les entrées sont triées sur la base des composants de leur nom distinctif. Pour plus d'informations, reportez-vous à ldap_sort. ldapsearch affiche normalement les entrées au fur et à mesure qu'il les reçoit. L'option –S, lorsqu'elle est activée, annule ce comportement. Toutes les entrées sont alors récupérées, triées, puis affichées.

-t

Écrit les valeurs binaires récupérées dans un ensemble de fichiers temporaires. Cette fonction est utile pour traiter des valeurs non‑ASCII comme jpegPhoto ou audio.

-tt

Écrit toutes les valeurs dans des fichiers temporaires.

-T chemin

Écrit les fichiers dans le répertoire indiqué par path (le répertoire par défaut est /tmp).

-u

Insère la forme conviviale du nom distinctif (DN) dans la sortie.

-V

Préfixe d'URL pour les fichiers.

-V préfixe

Spécifie le préfixe d'URL pour les fichiers (par défaut : file://tmp/).

-z limite_taille

Essaie d'atteindre la valeur limite_taille avant d'arrêter la recherche.

REMARQUE :pour plus d'informations sur les options communes, reportez-vous à la section Options communes à tous les outils LDAP.

Exemples

La commande suivante :

ldapsearch "cn=mark smith" cn telephoneNumber

permet de rechercher dans une sous-arborescence (à l'aide de la base de recherche par défaut) des entrées dont la valeur commonName est mark smith. Les valeurs commonName et telephoneNumber sont récupérées et affichées dans une sortie standard. Si deux entrées sont détectées, cette sortie peut se présenter comme suit :

cn=Mark D Smith, ou="College of Literature, Science, and the Arts", ou=Students, ou=People, o=University of Michigan, c=US
cn=Mark Smith
cn=Mark David Smith
cn=Mark D Smith 1
cn=Mark D Smith
telephoneNumber=+1 313 930-9489
cn=Mark C Smith, ou=Information Technology Division, ou=Faculty and Staff, ou=People,o=University of Michigan, c=US
cn=Mark Smith
cn=Mark C Smith 1
cn=Mark C Smith
telephoneNumber=+1 313 764-2277

La commande :

ldapsearch -u -t "uid=mcs" jpegPhoto audio

recherche dans une sous-arborescence (à l'aide de la base de recherche par défaut) les entrées dont l'ID utilisateur est mcs. La forme conviviale du nom distinctif de l'entrée s'affiche dans la sortie après la ligne comportant le nom distinctif proprement dit et les valeurs jpegPhoto et audio sont récupérées et écrites dans des fichiers temporaires. Si la recherche permet d'obtenir une entrée avec une valeur pour chacun des attributs demandés, la sortie peut se présenter comme suit :

cn=Mark C Smith, ou=Information Technology Division, ou=Faculty and Staff, ou=People, o=University of Michigan, c=US
Mark C Smith, Information Technology Division, Faculty and Staff, People, University of Michigan, US
audio=/tmp/ldapsearch-audio-a19924
jpegPhoto=/tmp/ldapsearch-jpegPhoto-a19924

La commande suivante effectue une recherche à un niveau sur le niveau c=US pour toutes les organisations dont le nom commence par university. :

ldapsearch -L -s one -b "c=US" "o=university*" o description

Les résultats de cette recherche sont affichés au format LDIF. Les valeurs des attributs organizationName et description sont récupérées et affichées dans la sortie standard, ce qui donne une sortie semblable à la suivante :

dn: o=University of Alaska Fairbanks, c=US
o: University of Alaska Fairbanks
description: Preparing Alaska for a brave new yesterday.
description: leaf node only
dn: o=University of Colorado at Boulder, c=US
o: University of Colorado at Boulder
description: No personnel information
description: Institution of education and research
dn: o=University of Colorado at Denver, c=US
o: University of Colorado at D

ndsindex

L'utilitaire ndsindex crée, liste, suspend, reprend ou supprime les index. Sa syntaxe est la suivante :

ndsindex list [-h <hostname>] [-p <port>] -D <bind DN> -W|[-w <password>] [-l limit] -s <eDirectory Server DN> [-Z[Z]] [<indexName1>, <indexName2>.....]
ndsindex add [-h <hostname>] [-p <port>] -D <bind DN> -W|[-w <password>] [-l limit] -s <eDirectory Server DN> [-Z[Z]] <indexDefinintion1> [<indexDefinintion2>.....]
ndsindex delete [-h <hostname>] [-p <port>] -D <bind DN> -W|[-w <password>] [-l limit] -s <eDirectory Server DN> [-Z[Z]] <indexName1> [<indexName2>.....]
ndsindex resume [-h <hostname>] [-p <port>] -D <bind DN> -W|[-w <password>] [-l limit] -s <eDirectory Server DN> [-Z[Z]] <indexName1> [<indexName2>.....]
ndsindex suspend [-h <hostname>] [-p <port>] -D <bind DN> -W|[-w <password>] [-l limit] -s <eDirectory Server DN> [-Z[Z]] <indexName1> [<indexName2>.....]

Option

Description

list

Liste les index spécifiés. Si aucun index n'est spécifié, ndsindex liste tous les index présents sur le serveur.

ajouter

Crée de nouveaux index.

suppression

Supprime les index spécifiés.

resume

Reprend les index hors ligne spécifiés.

suspendre

Suspend les index spécifiés en les mettant hors ligne.

-s DN_serveur_eDirectory

DN du serveur eDirectory.

REMARQUE :pour plus d'informations sur les options communes, reportez-vous à la section Options communes à tous les outils LDAP.

Exemples

Pour lister les index du serveur Mon_Hôte, entrez la commande suivante :

ndsindex list -h MyHost -D cn=admin,o=mycompany -w password -s cn=MyHost,o=novell

Pour créer un index de sous-chaîne appelé Mon_Index sur l'attribut d'adresse électronique, entrez la commande suivante :

ndsindex add -h myhost -D cn=admin, o=mycompany -w password -s cn=myhost, o=novell "MyIndex;email address;substring"

Pour créer un index de valeur appelé Mon_Index sur l'attribut de ville, entrez la commande suivante :

ndsindex add -h myhost -D cn=admin,o=mycompany -w password -s cn=myhost,o=novell "MyIndex;city;value"

Pour créer un index de sous-chaîne appelé Mon_Index sur l'attribut de numéro de téléphone personnel, entrez la commande suivante :

ndsindex add -h myhost -D cn=admin,o=mycompany -w password -s cn=myhost,o=novell "MyIndex;homephone;presence"

Pour supprimer l'index Mon_Index, entrez la commande suivante :

ndsindex delete -h myhost -D cn=admin,o=mycompany -w password -s cn=myhost,o=novell MyIndex

Pour suspendre l'index Mon_Index, entrez la commande suivante :

ndsindex suspend -h myhost -D cn=admin,o=mycompany -w password -s cn=myhost,o=novell MyIndex

Pour reprendre l'index Mon_Index, entrez la commande suivante :

ndsindex resume -h myhost -D cn=admin,o=mycompany -w password -s cn=myhost,o=novell MyIndex