如何使用ldapsearch检查UID

时间:2012-08-01 04:20:42

标签: shell

我希望shell脚本使用'ldapsearch'来比较文本文件中列出的UID和远程LDAP目录中的UID。

我不是shell脚本专家,非常感谢您的帮助。以下循环遍历作为参数给出的文本文件,但我需要的是在LDAP中不存在我的文本文件中的UID时回显。

#!/bin/sh

for i in `cat $1`;
  do ldapsearch -x -H ldaps://ldap-66.example.com -b ou=People,dc=crm,dc=example,dc=com uid=$i | grep uid: | awk '{print $2}';
  echo $i
done

非常感谢您的帮助!

大卫

2 个答案:

答案 0 :(得分:4)

尝试:

#!/bin/sh

url="ldaps://ldap-66.example.com"
basedn="ou=People,dc=crm,dc=example,dc=com"

for i in `cat $1`; do
    if ldapsearch -x -H "$url" -b "$basedn" uid=$i uid > /dev/null
    then
        # Do nothing
        true
    else
        echo $i
    fi
done

答案 1 :(得分:2)

Anttix,这是有效的最终版本。再次感谢。这是否表示接受了这个问题?

#!/bin/sh

url="ldaps://ldap-66.example.com"
basedn="ou=People,dc=crm,dc=example,dc=com"

for i in `cat $1`; do
    if ldapsearch -x -H "$url" -b "$basedn" uid=$i | grep uid: | awk '{print $2}' > /dev/null
    then
        # Do nothing
        true
    else
        echo $i
    fi
done