# uldap ~~~ uldap: Shell pour accéder à un serveur ldap USAGE uldap [options] OPTIONS -C profile Sélectionner un profil de connexion. Par défaut, si l'option -H n'est pas spécifiée, le premier profil est sélectionné. -x Ne pas tenter de faire une connexion sur le profil par défaut si aucun profil n'est sélectionné. -f script Lire les commandes depuis le script spécifié. -n Avec un script donné en ligne de commande ou lu depuis un fichier, ne pas ajouter automatiquement la commande print à la fin -i Si un script est spécifié, passer en mode interactif après l'exécution du script. -e Forcer l'arrêt du script si une erreur se produit. C'est l'option par défaut pour un script spécifié avec -f. -l input.ldif Charger le fichier input.ldif comme espace de travail initial -H ldapuri -D binddn -w password -b searchbase -v var=value COMMANDES $ cmd Passer directement une commande au shell. set [options] [var=value...] Changer des options ou des variables. set sans argument affiche la liste des variables définies. [set] plain Passer en mode 'plain': indiquer que l'espace de travail contient des données brutes. Les pré-traitements et post-traitements (uncut_on_load, decode_on_load, encode_on_save, cut_on_save) ne sont pas appliqués sur cet espace de travail [set] ldif Passer en mode 'ldif': indiquer que l'espace de travail contient des données ldif. Les pré-traitements et post-traitements sont appliqués normalement sur cet espace de travail [set] append Pour certaines opérations, spécifier si le résultat de la *prochaine* opération remplace le contenu de l'espace de travail courant (par défaut), ou si le résultat est ajouté à la fin. last Afficher en mode édition la dernière commande. Cette commande n'est fonctionnelle qu'avec une version de bash >=4.x profile name Choisir le profil 'name'. Equivalent à 'set profile=name'. Sans argument, afficher la liste des profils valides. auth anonymous|binddn [password] Spécifier le compte à utiliser pour se connecter. Equivalent à 'set binddn=binddn; set password=password' clear [-k] Vider l'espace de travail et passer en mode 'plain'. Avec l'option -k, supprimer aussi tout l'historique d'annulation. load [-k] input Charger un fichier dans l'espace de travail. Si l'extension du fichier est .ldif, passer en mode 'ldif' En mode append, rajouter le contenu du fichier à l'espace de travail, puis repasser en mode replace. Le code de retour est 0 si le fichier a été chargé, 1 sinon. save [-a] output Sauvegarder l'espace de travail dans un fichier. Avec l'option -a, rajouter au fichier au lieu de l'écraser print Afficher l'espace de travail alias a=rdn... Définir un alias pour la commande cd. 'a' est l'alias, 'rdn' est le dn correspondant, exprimé par rapport à $suffix. Sans argument, afficher la liste des aliases définis. cd rdn Changer searchbase. Par défaut, il s'agit d'un rdn relatif à $searchbase - Certains aliases sont supportés: .. pour l'objet parent, ~ pour $suffix, / pour la racine. 'cd' sans argument équivaut à 'cd ~' - Si le dn commence par '~/', il s'agit d'un rdn relatif à $suffix. - Si le dn commence par /, searchbase reçoit la valeur rdn sans modifications (sauf bien sûr enlever le '/' de tête si nécessaire). Il faut alors que ce soit un dn absolu. ls [-b searchbase] [filter [attrs...]] search [-b searchbase] [filter [attrs...]] Utiliser ldapsearch pour faire la recherche, et copier le résultat dans l'espace de travail. 'ls' est équivalent à 'search -s one'. Si ce n'est pas déjà le cas, passer en mode 'ldif'. L'option -b prend une valeur avec la même syntaxe que la commande cd, sauf que les alias ne sont pas supportés. En particulier, la valeur est relative au $searchbase courant. Pour faire une recherche par rapport à $suffix, il faut utiliser la syntaxe ~/searchbase. En mode append, rajouter le résultat de la recherche à l'espace de travail, puis repasser en mode replace. Le code de retour est 1 si aucun enregistrement n'a été trouvé, sinon le code de retour est celui de la commande ldapsearch. cut Couper les lignes trop longues. Cette action est en principe effectuée automatiquement lors de la sauvegarde. Il n'est pas conseillé d'appliquer des méthodes de transformation après avoir utilisé cette action. uncut Fusionner les lignes coupées. Cette action est en principe effectuée automatiquement lors du chargement ou après la recherche. encode [attrs...] Encoder en base64 les valeurs des attributs mentionnés. decode [attrs...] Décoder les valeurs des attributs mentionnés si nécessaire (c'est à dire s'ils sont encodés en base64) keepattr attrs... Garder uniquement les lignes des attributs mentionnés. Ensuite, supprimer les objets ayant uniquement la ligne dn: (en d'autres termes, keepattr sans argument supprime *tout* l'espace de travail) keepval attr patterns... Pour l'attribut attr, garder uniquement les lignes pour lesquelles les valeurs correspondent aux expressions régulières. Les autres attributs ne sont pas modifiés. Ensuite, supprimer les objets ayant uniquement la ligne dn: exclude attrs... Supprimer les lignes des attributs mentionnés. Ensuite, supprimer les objets ayant uniquement la ligne dn: excludeval attr patterns... Pour l'attribut attr, supprimer les lignes pour lesquelles les valeurs correspondent aux expressions régulières. Les autres attributs ne sont pas modifiés. Ensuite, supprimer les objets ayant uniquement la ligne dn: keepvalentry attr patterns... Pour l'attribut attr, vérifier si *au moins une* valeur correspond à l'une des expressions régulières. Si c'est le cas, garder l'entrée entière, sinon supprimer l'entrée. excludevalentry attr patterns... Pour l'attribut attr, vérifier si *aucune* des valeurs ne correspond à l'une des expressions régulières. Si c'est le cas, garder l'entrée entière, sinon supprimer l'entrée. setval attr values... Remplacer toutes les valeurs de l'attribut attr par les valeurs spécifiées. addval attr values... Ajouter un nouvel attribut avec les valeurs spécifiées. Si l'attribut existe déjà, les nouvelles valeurs sont ajoutées à la fin. sed args Modifier l'espace de travail avec le résultat de la commande sed. note: aucun argument n'est filtré, mais il ne faut pas utiliser les options de sed qui provoquent la modification en place du fichier, comme par exemple l'option -i awk args Modifier l'espace de travail avec le résultat de la commande awk. grep args Modifier l'espace de travail avec le résultat de la commande grep. format [options] attrs... Formater l'espace de travail en données tabulaires, et passer en mode 'plain'. --show-headers Afficher les en-têtes -F FSEP Spécifier le séparateur pour les attributs. Par défaut, il s'agit du caractère de tabulation. -R VSEP Spécifier le séparateur pour les valeurs des attributs. Par défaut, il s'agit du point-virgule ';' -e Retourner les valeurs comme des variables shell. Les options -F et -R sont ignorées. Les attributs multivalués sont écrits sous forme de tableaux. Par exemple: attributes=('mail' 'givenName') index=0 mail='user@domain.fr' givenName=('peter' 'gabriel') --bc Dans le mode -e, spécifier une commande à insérer avant le premier enregistrement. Quand cette commande est lancée, index==-1 -c Dans le mode -e, spécifier une commande à insérer après chaque enregistrement --ec Dans le mode -e, spécifier une commande à insérer après le dernier enregistrement sort [args] Modifier l'espace de travail avec le résultat de la commande sort. edit Lancer un éditeur pour modifier l'espace de travail. diff [options] Afficher les différences entre l'espace de travail et la version précédente ifok cmd iferror cmd Si le dernier code de retour est 0 (resp. !=0), lancer la commande cmd skip n Sauter les n prochaines commandes. A utiliser avec ifok et iferror undo Annuler la dernière modification effectuée sur l'espace de travail Les directives suivantes prennent le contenu de l'espace de travail, et le transforment en une suite de commandes de modifications pour ldapmodify: A Créer un objet de toutes pièces avec les attributs donnés et leurs valeurs. a Ajouter les valeurs spécifiée à l'attribut r Remplacer les valeurs de l'attribut par celles spécifiées d Supprimer les valeurs spécifiées de l'attribut D Supprimer l'attribut delentry Supprimer l'objet ldapmodify Utiliser ldapmodify pour modifier les objets sur le serveur. Il faut utiliser au préalable l'une des méthodes de transformation parmi A, a, r, d, D, delentry. Le code de retour est celui de la commande ldapmodify. ldapadd Utiliser ldapadd pour créer les objets situés dans l'espace de travail. Le code de retour est celui de la commande ldapadd. ldapdelete Utiliser ldapdelete pour supprimer la liste des dns situés dans l'espace de travail. Le code de retour est celui de la commande ldapdelete. Notes: - les expressions régulières sont celles reconnues par awk. - pour spécifier plusieurs actions sur une même ligne, les séparer par // - le code de retour est 0 si ok, 255 si une erreur s'est produite (erreur de syntaxe, de connexion, de lecture/écriture de fichier, etc.). sinon, les opérations ldap{search,modify,delete,add} ont leur code de retour respectifs ~~~ -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary