
Tengo alrededor de 10 usuarios a los que se les ha dado acceso a una aplicación específica que utiliza autenticación AD.
ldapsearch -p xxx -LLL -x -w test -h abc.com -D abc -b dc=abc,dc=com sAMAccountName=xyz | grep displayName
¿Se puede sAMAccountName
hacer que haga referencia a mi lista completa de usuarios (que es un archivo de texto separado) a la vez? Si no, ¿podemos simplemente poner este comando en un script y permitir que el usuario ingrese el suyo sAMAccountName
y verifique si existe en AD?
Tiene alguna idea sobre esto...
Respuesta1
Puede que no entienda esto claramente, pero si desea ponerlo en un script, puede escribir un script bash como el siguiente para solicitar un nombre de cuenta.
#!/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
Respuesta2
Su script deberá crear un filtro LDAP adecuado con todos los nombres de usuario:
(|(sAMAccountName=foo)(sAMAccountName=bar)(sAMAccountName=baz))
Por ejemplo:
filter="(|"
while read -r name; do
filter+="(sAMAccountName=${name})"
done
filter+=")"
(| ... )
es O en LDAP. El operador Y es (& ... )
.