.png)
Ich bin noch relativ neu im Umgang mit LDAP, insbesondere mit Nicht-AD-LDAP. Wir verwenden RedHat Directory Server und haben versucht, eine LDAP-Abfrage (speziell Filter) durchzuführen, die alle Benutzer (und ihre Attribute) aus einem abruft, das cn
ein nisNetgroupTriple
Attribut mit bestimmten Benutzernamen verwendet. So verwalten wir die „Superuser“, und alle anderen werden dann cn
je nach Bedarf in ein bestimmtes Verzeichnis verschoben. Meine Frage lautet also: Wie sucht und filtert man, um die Benutzer UND Attribute ( , , , ) aus einem ldapsearch
abzurufen ? Hier sind einige Beispielausgaben aus einem , die ich als Test erstellt habe:uid
sn
givenName
mail
cn
ldapsearch
# ldapsearch -xLLL -h server-p 389 -D "cn=Directory Manager" -b "cn=linux,dc=example,dc=org" \* + -W
Enter LDAP Password:
dn: cn=linux,dc=example,dc=org
nisNetgroupTriple: (,user1,)
nisNetgroupTriple: (,user2,)
nisNetgroupTriple: (,user3,)
cn: linux
objectClass: top
objectClass: nisNetgroup
memberNisNetgroup: linux
description: Linux
Ich muss für jeden Benutzer die Attribute abrufen: user1
, user2
, user3
, beispielsweise:
# ldapsearch -xLLL -h server -p 389 -D "cn=Directory Manager" -b "dc=example,dc=org" -x '(&(objectClass=posixAccount)(uid=user1))' -W
Enter LDAP Password:
dn: uid=user1,ou=People,dc=example,dc=org
userPassword:: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
givenName: User
sn: One
loginShell: /bin/false
gidNumber: 1000
uidNumber: 10054
mail: user1@localhost
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetorgperson
objectClass: posixAccount
uid: user1
cn: User One
homeDirectory: /home/user1
Ich kann im Internet nichts Sinnvolles dazu finden, wie das geht (falls es möglich ist). Außerdem verstehe ich diesen Teil von LDAP möglicherweise nicht ganz, was der Grund dafür sein könnte, dass ich 1) nichts finde und 2) nicht weiß, wie ich es selbst herausfinden soll.
Jede Hilfe wird geschätzt.
Antwort1
Der folgende Befehl hilft je nach Konfiguration bei der Suche nach dem Benutzernamen.
ldapsearch -h localhost -D "cn=Directory Manager" -b "dc=example,dc=org" -W -x "(&(objectClass=nisnetgroup)(nisNetgroupTriple=\(,user1,\)))" cn | grep dn
Es wird nur der cn angezeigt. Sie können schnell grep ausführen und die Ausgabe ist kurz und präzise. Es wäre hilfreicher, diese Gruppe zu ergänzen/zu ändern.
Bitte versuchen Sie diese LDAP-Abfrage und lassen Sie mich wissen, wenn Probleme auftreten.