Ldapsearch 쿼리 명의 사용자가 있습니다. ldapsearch -p xxx -LLL

AD 인증을 사용하는 특정 응용 프로그램 하나에 액세스 할 수있는 약 10 명의 사용자가 있습니다.

ldapsearch -p xxx -LLL -x -w test -h abc.com -D abc -b dc=abc,dc=com sAMAccountName=xyz | grep displayName

sAMAccountName전체 사용자 목록 (별도의 텍스트 파일)을 한 번에 참조 할 수 있습니까 ? 그렇지 않은 경우,이 명령을 스크립트에 넣고 사용자 sAMAccountName가 AD에 존재하는지 확인하고 입력 할 수 있습니까?

이것에 대한 생각은 …



답변

나는 이것을 명확하게 이해하지 못할 수도 있지만 스크립트에 넣고 싶다면 아래처럼 bash 스크립트를 작성하여 계정 이름을 물어볼 수 있습니다.

#!/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

답변

스크립트는 모든 사용자 이름으로 적절한 LDAP 필터를 작성해야합니다.

(|(sAMAccountName=foo)(sAMAccountName=bar)(sAMAccountName=baz))

예를 들면 다음과 같습니다.

filter="(|"
while read -r name; do
    filter+="(sAMAccountName=${name})"
done
filter+=")"

(| ... )LDAP에서 OR입니다. AND 연산자는 (& ... )입니다.