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: 12345
linhas. Talvez você precise canalizá-lo sed
para remover a parte que não deseja. (Alternativamente, se você fizer isso com perl
e Net::LDAP
conseguir 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