Перейти к основному содержанию

Linux — получить информацию о пользователях домена

Linux

Вы работаете на сервере Linux, к примеру, Ubuntu Server, и хотите получить информацию о доменном пользователе. На помощь приходит утилита ldapsearch.

Утилита доступна в пакете ldap-utils. Установка в Debian:

apt install ldap-utils

Тестовый стенд:

  • Работаем на сервере Ubuntu, не в домене.
  • Имеется домен ilab.local
  • Имеется контроллер домена ilab-dc, FQDN: ilab-dc.ilab.local
  • Мы знаем пароль доменного пользователя user111

Вывести список пользователей в подразделении ILAB, команда перед выполнением запросит пароль:

ldapsearch -x -h ilab-dc.ilab.local -D "user111@ilab.local" -W -b "ou=ILAB,dc=ilab,dc=local"

linux

Можно поиграться с командой grep (атрибуты -A и -B, after и before) и получить данные только конкретного пользователя:

ldapsearch -x -h ilab-dc.ilab.local -D "user111@ilab.local" -W -b "ou=ILAB,dc=ilab,dc=local" | grep "# user1" -A 40
# или
ldapsearch -x -h ilab-dc.ilab.local -D "user111@ilab.local" -W -b "ou=ILAB,dc=ilab,dc=local" | grep "sAMAccountName: user1" -A 11 -B 40

Мы получаем полный список атрибутов, отфильтровать потом нужное не составит труда.

linux

Больше примеров

Все объекты дерева:

ldapsearch -x -b <search_base> -H <ldap_host> -D <bind_dn> -W "objectclass=*"

Все пользователи:

ldapsearch -x -b <search_base> -H <ldap_host> -D <bind_dn> -W "objectclass=account"

Вывод конкретных атрибутов:

ldapsearch -x -b <search_base> -H <ldap_host> -D <bind_dn> -W "objectclass=account" cn uid homeDirectory

Оператор И:

ldapsearch <previous_options> "(&(<condition_1>)(<condition_2>)...)"
# пример
ldapsearch <previous_options> "(&(objectclass=account)(uid=john))"

Оператор ИЛИ:

ldapsearch <previous_options> "(|(<condition_1>)(<condition_2>)...)"
# пример
ldapsearch <previous_options> "(|(objectclass=account)(objectclass=organizationalRole))"

Оператор НЕ:

ldapsearch <previous_options> "(!(<condition_1>)(<condition_2>)...)"
# пример
ldapsearch <previous_options> "(!(cn=john))"

Подстановочный символ "*":

ldapsearch <previous_options> "(object_type)=*(object_value)"
ldapsearch <previous_options> "(object_type)=(object_value)*"
# пример
ldapsearch <previous_options> "uid=jo*"

Оператор равенства ":=":

ldapsearch <previous_options> "<object_type>:=<object_value>"
# пример
ldapsearch <previous_options> "cn:=john"

Дополнительные фильтры ":":

ldapsearch <previous_options> "<object_type>:<op1>:<op2>:=<object_value>"
# пример
ldapsearch <previous_options> "cn:caseExactMatch:=john"

Ссылки

https://docs.ldap.com/ldap-sdk/docs/tool-usages/ldapsearch.html

Теги

 

Похожие материалы

Запуск графических приложений на сервере Oracle Linux 7.4 с удалённой Windows 10 машины

Иногда (или постоянно) сисадмину требуется запустить графическую программу на linux сервере. Сегодня будем запускать графический инсталлятор DB Oracle на сервере Oracle Linux 7.4

Теги