Estoy tratando de mostrar todas las cuentas deshabilitadas desde el comando:
ipa user-find --allLa salida básica del comando muestra algo como esto:
dn: uid=johnd,cn=users,cn=accounts,dc=mydomain,dc=com User login: johnd First Name: John Last Name: Doe Full Name: John Doe Home directory: /home/johnd GECOS field: John Doe Login shell: /bin/bash Kerberos principal: johnd@DOMAIN.COM Email address: johnd@domain.com UID: 501 GID: 1022 Account disabled: True Password: True Member of groups: ipausers Kerberos keys available: False ipauniqueid: 75732ha-482x82l-13xa-d820-0120xbba142 objectclass: ipaobject, krbticketpolicyaux, etc.Si ejecuto:
ipa user-find --all | grep "Account disabled: True"voy a conseguir:
Account disabled: True Account disabled: True Account disabled: True Account disabled: True Para todas las cuentas deshabilitadas. ¿Hay alguna manera de que muestre todos los campos que coincidan con "Account disabled: True" ?
Y una solución awk que no depende del orden y/o la presencia de todos los atributos [y dado mi conocimiento de ldif, asumiré con seguridad que DN: siempre está en la primera línea]:
awk 'BEGIN{RS="\n\n";FS="\n"}/Account disabled: True/{print $1}'ipa-user-find --all | grep "Account disabled: True" -B12 -A5 -B es cuántas líneas antes y -A es cuántas después. Probablemente haya una solución más elegante, pero esto funciona por ahora.
Si solo desea el nombre completo de cada cuenta deshabilitada, simplemente canalice sus resultados a otro comando grep