Como listar o uid de todos os usuários do LDAP?

Como listar o uid de todos os usuários do LDAP?

Recebo uma lista de todos os usuários do LDAP usando o seguinte comando ldapsearch -x -LLL uid=* > result.

O resultado do seguinte comando resulta no seguinte formato

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

Existe uma lista completa desses registros.

Quero selecionar todos os uid em um arquivo, de forma que apenas o valor de uid seja listado.

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

Responder1

Você pode especificar atributos após o filtro e ele exibirá apenas esses atributos.

Por exemplo:

ldapsearch -x -LLL uid=* uid > result

Isso pode lhe dar um monte de uid: 12345linhas. Talvez você precise canalizá-lo sedpara remover a parte que não deseja. (Alternativamente, se você fizer isso com perle Net::LDAPconseguir extrair exatamente o que deseja - mas acho que ldapsearch+ sedé o caminho de menor resistência).

Responder2

A maneira mais fácil seria canalizar os resultados para grep e depois cortar. Exemplo é

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

informação relacionada