
Tenho cerca de 10 usuários que receberam acesso a um aplicativo específico que usa autenticação AD.
ldapsearch -p xxx -LLL -x -w test -h abc.com -D abc -b dc=abc,dc=com sAMAccountName=xyz | grep displayName
Pode sAMAccountName
ser feito referência a toda a minha lista de usuários (que é um arquivo de texto separado) de uma só vez? Caso contrário, podemos simplesmente colocar este comando em um script e deixar o usuário inserir o seu sAMAccountName
e verificar se ele existe no AD?
Qualquer pensamento sobre isso ...
Responder1
Posso não entender isso claramente, mas se você quiser colocá-lo em um script, poderá escrever um script bash como abaixo para solicitar um nome de conta.
#!/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
Responder2
Seu script terá que criar um filtro LDAP adequado com todos os nomes de usuário:
(|(sAMAccountName=foo)(sAMAccountName=bar)(sAMAccountName=baz))
Por exemplo:
filter="(|"
while read -r name; do
filter+="(sAMAccountName=${name})"
done
filter+=")"
(| ... )
é OR no LDAP. O operador AND é (& ... )
.