2011-07-11 21:44:59 +0000 2011-07-11 21:44:59 +0000
30
30
Advertisement

¿Cómo ver el historial de comandos de otro usuario en Linux?

Advertisement

¿Cómo puedo ver el historial de comandos de otro usuario?

Soy un administrador en mi máquina. Puedo ver el historial normal viendo /home/user_name/.bash_history pero no puedo ver los comandos de ese user_name cuando estaban haciendo sudo.

¿Hay alguna manera de ver todos los comandos ejecutados por un usuario?

Advertisement
Advertisement

Respuestas (6)

23
23
23
2011-07-11 21:51:46 +0000

En los sistemas operativos basados en Debian, al hacertail /var/log/auth.log | grep username se obtiene el historial de sudo de un usuario. No creo que haya una forma de obtener un historial de comandos unificado de los comandos normales + sudo de un usuario.

En los sistemas operativos basados en RHEL, tendría que comprobar /var/log/secure en lugar de /var/log/auth.log.

5
5
5
2015-11-04 21:51:20 +0000

Acabo de probar lo siguiente y ha funcionado de maravilla.

sudo vim /home/USER_YOU_WANT_TO_VIEW/.bash_history
2
Advertisement
2
2
2011-07-11 21:52:18 +0000
Advertisement

Si el usuario emitió un comando como en sudo somecommand, el comando aparecerá en el registro del sistema.

Si el usuario generó un shell con, por ejemplo, sudo -s, sudo su, sudo sh, etc, entonces el comando puede aparecer en el historial del usuario root, es decir, en /root/.bash_history o similar.

1
1
1
2019-01-16 07:16:45 +0000

utilice el siguiente comando

sysdig -c spy_users

si sysdig no está instalado , instale aquí

1
Advertisement
1
1
2016-01-03 19:43:19 +0000
Advertisement

# zless /var/log/auth* es tu amigo aquí. Abre incluso los archivos comprimidos. Puedes saltar entre ellos con :n hacia delante o :p hacia atrás.

Alternativamente, puedes usar # journalctl -f -l SYSLOG_FACILITY=10 por ejemplo. Lea más sobre esto en el wiki de Arch Linux

-1
-1
-1
2018-09-30 16:38:21 +0000

La lógica se aplica a muchos otros objetivos.
¿Y cómo leer el .sh_history de cada usuario desde el sistema de archivos /home/? ¿Y si hay miles de ellos?

#!/bin/ksh
last |head -10|awk '{print $1}'|
 while IFS= read -r line
 do
su - "$line" -c 'tail .sh_history'
 done

Aquí es el script.

Advertisement

Preguntas relacionadas

6
10
5
37
2
Advertisement