UNIX 114: ldapsearch
ldapsearch hat einige nützliche Parameter:
-LLLzum ausblenden der (meist unnötigen) LDIF-Kommentare.-Qunterdückt die Ausgabe der SASL-Bibliothek (aber auch deren ggf. Nachfrage nach einem Passwort).-o ldif-wrap=noUm das Umbrechen nach 72 Zeichen zu unterbinden. Alternative:ldapsearch-wrapper.-S cnSortierte die Einträge Client-seitig nach einem Attribut.-E sss=cnSortiert die Einträge Server-seitig nach einem Attribut. In OpenLDAP muss dazuslapo-sssvlvaktiviert sein.-E mv='(objectClasses=inetOrgPerson)'Zeigt nur die Attribute an, auf die der zusätzliche “Matched Value”-Filter passt.
Weitere nützliche Anfragen:
LDAP Basis herausfinden
ldapsearch -xLLLo ldif-wrap=no -s base -b '' namingContexts
LDAP Schema Information auslesen
ldapsearch -xLLLo ldif-wrap=no -s base -b cn=Subschema +
Sieh dazu auch UNIX 108: ldapsearch
Zugriff über den UNIX-Domain-Socket
ldapsearch -QY EXTERNAL -H ldapi:///
Das funktioniert auch für ldapmodify und umgeht ähnlich wie cn=admin jegliche ACL!
Auslesen der slapd Konfiguration
ldapsearch -LLLo ldif-wrap=no -QY EXTERNAL -H ldapi:/// -b cn=config
Das funktioniert auch für ldapmodify zum Ändern von Einstellungen im laufenden Betrieb.
Siehe UNIX 112: cn=config.
Suchen nach dem DN
dn ist kein Attributname, ein ldapsearch … dn ist also strenggenommen falsch.
Korrekt wäre ldapsearch … 1.1.
“Vererbung” aus dem DN
LDAP ist hierarchisch, d.h. der Benutzer mit dn: uid=phahn,ou=Entwicklung,o=Univention,l=Oldenburg,st=NDS,c=de erbt indirekt das Country, den State, die Location/Organisation/-einheit.
Die objectClass organizationalPerson erlaubt auch das explizite erfassen der Attribute, aber man kann auch auf die Attribute aus dem dn filtern:
ldapsearch … '(&(uid=*)(l:dn:=Oldenburg))'
findet alle Benutzer unterhalb eines Containers Location “Oldenburg”.
Der Versuch, alle realen Benutzer aus unserem LDAP-Verzeichnis zu bekommen, könnte also so aussehen, enthält aber immer noch zu viel Schrutz:
ldapsearch -LLLo ldif-wrap=no \
-b cn=users,dc=knut,dc=univention,dc=de \
'(&(uid=*)(!(cn:dn:=external))(!(cn:dn:=searchuser))(!(cn:dn:=disabled))(!(cn:dn:=otrs))(!(cn:dn:=mail))(!(cn:dn:=ressourcen)))' \
1.1