
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 に存在するかどうかを確認させることはできますか?
これについて何かご意見は…
答え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 演算子は です(& ... )
。