Desde qué registro puedo obtener detalles sobre los comandos sudo ejecutados por cualquier usuario. Debe contener el directorio de trabajo, comando, usuario. Sería útil si pudiera proporcionarme un script de shell para hacerlo
Dependiendo de tu distribución; simplemente:
$ sudo grep sudo /var/log/secure
o
$ sudo grep sudo /var/log/auth.log
lo que da:
Nov 14 09:07:31 vm1 sudo: pam_unix(sudo:auth): authentication failure; logname=gareth uid=1000 euid=0 tty=/dev/pts/19 ruser=gareth rhost= user=gareth
Nov 14 09:07:37 vm1 sudo: gareth : TTY=pts/19 ; PWD=/home/gareth ; USER=root ; COMMAND=/bin/yum update
Nov 14 09:07:53 vm1 sudo: gareth : TTY=pts/19 ; PWD=/home/gareth ; USER=root ; COMMAND=/bin/grep sudo /var/log/secure
El usuario que ejecuta el comando está después de sudo:
- gareth
en este caso.
PWD
es el directorio
USER
es el usuario que gareth
se ejecuta como, root
en este ejemplo.
COMMAND
Es el comando ejecutado.
Por lo tanto, en el ejemplo anterior, gareth
solía sudo
ejecutar yum update
y luego ejecutó este ejemplo. Antes de eso, escribió la contraseña incorrecta.
En sistemas más nuevos:
$ sudo journalctl _COMM=sudo
da una salida muy similar.
Un "filtro de resultados" para la solución de Gareth. (para aquellos que llegaron por título de publicación, no por descripción)
Le ofrece una lista limpia de comandos, ejecutados como sudo, por todos los usuarios.
$sudo journalctl _COMM=sudo | sed -e '/COMMAND/!d' -e 's/.*COMMAND=//' -e 's/.*bin\///'
Solución alternativa si no está disponible
$sudo journalctl _COMM=sudo | grep COMMAND
Resultados de C&P en hojas de Google
En la celda B1 C&P esta fórmula
=arrayformula(REGEXREPLACE(A1:A,".*AND=/usr/bin/(.*)","$1"))