Скрипт ldapsearch с входным файлом - PullRequest
0 голосов
/ 09 мая 2018

У меня есть файл со списком пользователей. Я бы хотел запросить в ldap нашей компании, чтобы проверить, являются ли пользователи в моем списке все еще существующими учетными записями на сервере ldap компании.

Сценарий bash, по сути, использовал бы файл, чтобы использовать имена для проверки с помощью ldaps 'cn', а затем, возможно, вывести / распечатать результаты, чтобы определить, какие имена больше не существуют.

Звучит просто, и я знаком с выполнением основных команд ldapsearch, но не уверен, как бы я начал это писать.

Ценю всю помощь!

1 Ответ

0 голосов
/ 16 мая 2018

Я выполнил именно эту задачу, и мой подход заключается в следующем: выполните запрос 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
...