J'obtiens la liste de tous les utilisateurs de LDAP en utilisant la commande suivante ldapsearch -x -LLL uid=* > result
.
Le résultat de la commande suivante se présente au format suivant
dn: uid=shahrukh,ou=People,dc=example,dc=com
uid: shahrukh
cn: shahrukh
sn: shahrukh
loginShell: /bin/bash
uidNumber: 1086
gidNumber: 1086
homeDirectory: /home/ldap/shahrukh
Il existe une liste complète de ces enregistrements.
Je veux présélectionner tous les uid dans un fichier de telle sorte que seule la valeur de uid soit répertoriée.
shahrukh
abc
xyz
....
....
....
Vous pouvez spécifier des attributs après votre filtre et il n'affichera que ces attributs.
Par exemple.:
ldapsearch -x -LLL uid=* uid > result
Cela pourrait vous donner un tas de uid: 12345
lignes. Vous devrez peut-être ensuite le diriger via sed
pour supprimer le bit dont vous ne voulez pas. (Alternativement, si vous le faites avec Perl
et Net::LDAP
vous pouvez extraire précisément ce que vous voulez - mais je pense que ldapsearch
+ sed
est le chemin de moindre résistance).
Le moyen le plus simple serait de diriger les résultats vers grep puis de couper. L'exemple est
ldapsearch -x -LLL uid=* | grep uid: | cut -d: -f2 > results