Ldapsearch
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Domaine | Interrogation d'annuaire LDAP |
| Commande | ldapsearch
|
| Paquet | openldap-clients (RHEL) · ldap-utils (Debian)
|
| Voir aussi | LDAP · OPENLDAP · LDIF |
ldapsearch est l'outil en ligne de commande de référence pour interroger un annuaire
LDAP (OpenLDAP, Active Directory, 389 DS...). Il fait partie du paquet client
openldap-clients / ldap-utils selon la distribution.
Options principales
-x pas d'authentification SASL (bind simple, avec -D/-W)
-LLL restreint la sortie LDIF (masque les commentaires et la version)
-H uri URI du serveur (ldap://serveur ou ldaps://serveur)
-h host nom d'hôte ou adresse IP du serveur (alternative à -H)
-D dn DN de bind (compte utilisé pour se connecter)
-W demande le mot de passe de manière interactive (au prompt)
-w pass mot de passe en ligne de commande (déconseillé : reste dans l'historique shell)
-b base branche (base DN) où porte la recherche
-s scope étendue de la recherche : base, one ou sub
Exemples
Recherche par groupe (bind simple) :
ldapsearch -x -LLL -H ldap://ldap.exemple.local/ \
-D "cn=admin,dc=exemple,dc=local" -W \
-b "ou=administration,dc=exemple,dc=local"
Interrogation d'une base Active Directory :
ldapsearch -x -LLL -h ad.exemple.local \
-D "cn=administrateur,cn=users,dc=exemple,dc=local" -W \
-b "dc=exemple,dc=local" "(objectClass=computer)" cn
Filtres courants (annuaire Active Directory)
Tous les ordinateurs sans description :
(&(objectClass=computer)(!(description=*)))
Tous les groupes ayant une description :
(&(objectCategory=group)(description=*))
Tous les groupes dont le nom commence par QA ou HD :
(&(objectClass=group)(|(cn=QA*)(cn=HD*)))
Tous les objets où Department, Company ou Description vaut "Ventes" :
(|(department=Ventes)(company=Ventes)(description=Ventes))
Tous les utilisateurs créés après le 01/08/2008 :
(&(objectClass=user)(whenCreated>=20080801000000.0Z))
Tous les comptes bientôt verrouillés (échecs de connexion) :
(&(objectClass=user)(badPwdCount>=2))
Tous les comptes utilisateur désactivés :
(&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=2))
Tous les utilisateurs membres d'un groupe donné :
(&(objectClass=user)(memberOf=cn=Groupe QA,ou=Support,dc=exemple,dc=fr))
Tous les utilisateurs ayant une adresse mail :
(&(objectClass=user)(mail=*))
Tous les utilisateurs devant changer leur mot de passe à la prochaine connexion :
(&(objectCategory=user)(pwdLastSet=0))
Tous les utilisateurs avec mot de passe n'expirant jamais :
(&(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=65536))
⚠️ Corrections apportées : plusieurs filtres de la source d'origine étaient tronqués ou
syntaxiquement invalides (ex. tClass=user au lieu de objectClass=user,
parenthésage incorrect sur la négation). Les filtres ci-dessus ont été corrigés pour être
directement utilisables.