
Ich habe ungefähr 10 Benutzer, denen Zugriff auf eine bestimmte Anwendung gewährt wurde, die AD-Authentifizierung verwendet.
ldapsearch -p xxx -LLL -x -w test -h abc.com -D abc -b dc=abc,dc=com sAMAccountName=xyz | grep displayName
Kann sAMAccountName
ich auf einmal auf meine gesamte Benutzerliste (die eine separate Textdatei ist) verweisen? Wenn nicht, können wir diesen Befehl einfach in ein Skript einfügen und den Benutzer seine Benutzer eingeben sAMAccountName
und prüfen lassen, ob sie in AD vorhanden sind?
Irgendwelche Gedanken dazu...
Antwort1
Ich verstehe das vielleicht nicht ganz, aber wenn Sie es in ein Skript einfügen möchten, könnten Sie ein Bash-Skript wie unten schreiben, um zur Eingabe eines Kontonamens aufzufordern.
#!/bin/bash
echo -n "Please enter username to lookup: "
read USERNAME
DISPLAYNAME=`ldapsearch -p xxx -LLL -x -w test -h abc.com -D abc -b dc=abc,dc=com sAMAccountName=$USERNAME | grep displayName`
if [ -z "$DISPLAYNAME" ]; then
echo "No entry found for $USERNAME"
else
echo "Entry found for $USERNAME"
fi
Antwort2
Ihr Skript muss einen entsprechenden LDAP-Filter mit allen Benutzernamen erstellen:
(|(sAMAccountName=foo)(sAMAccountName=bar)(sAMAccountName=baz))
Zum Beispiel:
filter="(|"
while read -r name; do
filter+="(sAMAccountName=${name})"
done
filter+=")"
(| ... )
ist ODER in LDAP. Der UND-Operator ist (& ... )
.