¿Cómo enumerar el uid de todos los usuarios de LDAP?

¿Cómo enumerar el uid de todos los usuarios de LDAP?

Obtengo una lista de todos los usuarios de LDAP usando el siguiente comando ldapsearch -x -LLL uid=* > result.

El resultado del siguiente comando da como resultado el siguiente 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

Hay una lista completa de estos registros.

Quiero preseleccionar todos los uid en un archivo de modo que solo se incluya el valor del uid.

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

Respuesta1

Puede especificar atributos después de su filtro y solo mostrará esos atributos.

P.ej:

ldapsearch -x -LLL uid=* uid > result

Esto podría darte un montón de uid: 12345líneas. Es posible que luego tengas que pasarlo por un tubo sedpara quitar la parte que no deseas. (Alternativamente, si lo haces con perly Net::LDAPpuedes extraer precisamente lo que quieres, pero creo que ldapsearch+ sedes el camino de menor resistencia).

Respuesta2

La forma más sencilla sería canalizar los resultados a grep y luego cortarlos. El ejemplo es

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

información relacionada