Ldapsearchクエリ

Ldapsearchクエリ

AD 認証を使用する特定のアプリケーションへのアクセス権が付与されているユーザーが約 10 人います。

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

ユーザーのリスト全体 (別のテキスト ファイル) を一度に参照できるようにできますsAMAccountNameか? そうでない場合は、このコマンドをスクリプトに組み込み、ユーザーに入力させてsAMAccountNameAD に存在するかどうかを確認させることはできますか?

これについて何かご意見は…

答え1

これをはっきりと理解していないかもしれませんが、スクリプトに組み込む場合は、以下のような 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

答え2

スクリプトでは、すべてのユーザー名を含む適切な LDAP フィルターを作成する必要があります。

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

例えば:

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

(| ... )LDAP では OR です。AND 演算子は です(& ... )

関連情報