Tenemos varios servidores y me gustaría imprimir la lista de usuarios y el nivel de acceso usando bash.
Intenté el siguiente comando pero no pude obtener el resultado exacto que quería:
awk '/Allow root/{p=5} p > 0 {print $1; p--}' /etc/sudoers
El comando anterior solo dame cinco entradas como se muestra a continuación.
##
root
abcd
ghfd
fcff
pero debería obtener el O/P como se muestra a continuación:
UserList AccessLevel
root ALL
abcd !/usr/bin/*
¿Puedo obtener el resultado como se muestra arriba?
Respuesta1
Después de hacer tantos experimentos, puedo lograrlo lo más cerca posible con el siguiente comando.
grep "ALL=(ALL)" /etc/sudoers | awk '{ print $1 "\t""\t""\t" $3 $4}' | cut -d '#' -f1 | cut -d '%' -f1
y el resultado es el siguiente:
xxxx ALL
xxxxxx ALL
xxxx ALL
xxxx NOPASSWD:ALL
abcd ALL
xxxx ALL
Pero todavía obtengo una salida separada por espacios. Quiero omitir esos espacios en la salida.