
我有大約 10 位使用者被授予存取使用 AD 身份驗證的特定應用程式的權限。
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 運算子是(& ... )
。