Mit dem folgenden Befehl erhalte ich eine Liste aller LDAP-Benutzer ldapsearch -x -LLL uid=* > result
.
Das Ergebnis des folgenden Befehls ergibt folgendes Format
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
Es gibt eine vollständige Liste dieser Datensätze.
Ich möchte alle UIDs in einer Datei so auflisten, dass nur der UID-Wert aufgelistet wird.
shahrukh
abc
xyz
....
....
....
Antwort1
Sie können nach Ihrem Filter Attribute angeben und es werden nur diese Attribute angezeigt.
Z.B:
ldapsearch -x -LLL uid=* uid > result
Dies kann zu einer Reihe von uid: 12345
Zeilen führen. Sie müssen es dann möglicherweise weiterleiten, sed
um den Teil zu entfernen, den Sie nicht möchten. (Alternativ können Sie es mit tun perl
und Net::LDAP
genau das extrahieren, was Sie möchten – aber ich denke, ldapsearch
+ sed
ist der Weg des geringsten Widerstands).
Antwort2
Der einfachste Weg wäre, die Ergebnisse an grep weiterzuleiten und dann auszuschneiden. Beispiel:
ldapsearch -x -LLL uid=* | grep uid: | cut -d: -f2 > results