【问题标题】:ldapsearch script with an input file带有输入文件的 ldapsearch 脚本
【发布时间】:2018-10-19 23:36:43
【问题描述】:

我有一个包含用户列表的文件。我想查询我们公司的ldap,看看我列表中的用户是否还在公司的ldap服务器上。

bash 脚本本质上会使用文件来使用名称来检查 ldaps 'cn',然后可能会输出/打印到结果以识别哪些名称不再存在。

听起来很简单,而且我熟悉执行基本的 ldapsearch 命令,但不确定如何开始编写脚本。

感谢所有帮助!

【问题讨论】:

标签: bash ldap-query


【解决方案1】:

我已经完成了这个确切的任务,我的方法是:执行 ldapsearch 查询并获取 ldap 中有效用户的所有电子邮件。转换为小写、排序、删除重复项并存储在文件中。对要检查的用户列表执行相同操作。然后使用 comm 从 LDAP 中查找不在列表中的任何电子邮件。除非您有大量 LDAP 记录,否则此方法应该是最快的。代码如下:

LDAP_SERVER="ldap://YOUR.LDAP.SERVER:389"
LDAP_USER="QUERY_USER_NAME"
LDAP_PASSWORD="QUERY_PASSWORD"

ldapsearch -E pr=1000/noprompt -LLL -o ldif-wrap=no -x \
    -b 'dc=example,dc=com' \
    -H $LDAP_SERVER -D $LDAP_USER -w $LDAP_PASSWORD \
    '(&(objectCategory=person)(objectClass=user)(Mail=*))' mail |\
    awk '/^mail:/{print $2}' |\
    tr '[:upper:]' '[:lower:]' |\
    sort -u >ldap_emails

cat user_list |\
    tr '[:upper:]' '[:lower:]' |\
    sort -u >user_emails

comm -13 ldap_emails user_emails

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-18
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    • 2017-08-31
    相关资源
    最近更新 更多