如何使用 ldapsearch 检查 UID 是否存在

Dan*_*Dan 3 shell ldap

我想让 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
Run Code Online (Sandbox Code Playgroud)

ant*_*tix 7

尝试:

#!/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
Run Code Online (Sandbox Code Playgroud)