Как получить список uid всех пользователей LDAP?

Как получить список uid всех пользователей LDAP?

Я получаю список всех пользователей LDAP с помощью следующей команды ldapsearch -x -LLL uid=* > result.

Результат следующей команды имеет следующий формат:

dn: uid=shahrukh,ou=People,dc=example,dc=com
uid: shahrukh
cn: shahrukh
sn: shahrukh
loginShell: /bin/bash
uidNumber: 1086
gidNumber: 1086
homeDirectory: /home/ldap/shahrukh

Существует полный список этих записей.

Я хочу составить список всех uid в одном файле так, чтобы было указано только значение uid.

shahrukh
abc
xyz
....
....
....

решение1

Вы можете указать атрибуты после фильтра, и он будет отображать только эти атрибуты.

Например:

ldapsearch -x -LLL uid=* uid > result

Это может дать вам кучу uid: 12345строк. Затем вам, возможно, придется пропустить его через конвейер, sedчтобы удалить ненужную часть. (В качестве альтернативы, если вы сделаете это с perlи Net::LDAPвы сможете извлечь именно то, что вам нужно - но я думаю, что ldapsearch+ sed- это путь наименьшего сопротивления).

решение2

Самый простой способ — передать результаты в grep, а затем вырезать. Пример:

ldapsearch -x -LLL uid=* | grep uid: | cut -d: -f2 > results

Связанный контент