Ldapsearch 查询

Ldapsearch 查询

我有大约 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 运算符为(& ... )

相关内容