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

30

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

Soy un administrador en mi máquina. Puedo ver el historial normal al verlo, /home/user_name/.bash_historypero no puedo ver comandos de eso user_namecuando lo estaban haciendo sudo.

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

Sean Nguyen
fuente
1
Roba su contraseña :) o por ingeniería social. Si no eres root, y tu cuenta está configurada de manera que no puedas acceder / leer los archivos / inicio de otros usuarios, estás bastante restringido.
portador del anillo
8
"Soy administrador de mi máquina".

Respuestas:

23

En los sistemas operativos basados ​​en Debian, hacerlo tail /var/log/auth.log | grep username debería darle el sudohistorial de un usuario . No creo que haya una manera de obtener un historial de comandos unificado de los comandos normales + sudo de un usuario.

En los sistemas operativos basados ​​en RHEL, necesitaría verificar en /var/log/securelugar de /var/log/auth.log.

Kerin
fuente
¿Alguna idea de lo que sería en un sistema centos? Mis máquinas Centos 7 no tienen un/var/log/auth.log
Mitch
3
Intenta en su /var/log/securelugar.
Kerin
¡Funciona perfectamente! Simplemente ingrese una solicitud de edición en su respuesta
Mitch
4

Acabo de probar lo siguiente, y funcionó a las mil maravillas.

sudo vim /home/USER_YOU_WANT_TO_VIEW/.bash_history
Tyson
fuente
1
Ya está al tanto de este comando. De la pregunta original: "Puedo ver el historial normal al ver /home/user_name/.bash_history pero no puedo ver los comandos de ese" user_name "cuando estaban haciendo sudo".
Michael Thompson
2

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

Si el usuario dio lugar a una concha con, por ejemplo, sudo -s, sudo su, sudo sh, etc, a continuación, el comando puede aparecer en el historial del usuario raíz, es decir, en /root/.bash_historyo similar.

bdonlan
fuente
1
¿Dónde está el registro del sistema?
Garrett
1

# zless /var/log/auth*es tu amigo aquí Abre incluso los archivos comprimidos. Puede saltar entre aquellos con :nhacia adelante o :phacia atrás.

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

AdamKalisz
fuente
1

use el siguiente comando

sysdig -c spy_users

si sysdig no está instalado , instálelo aquí

sachin_ur
fuente
0

Quizás este enlace tenga un valor para usted: http://www.sudo.ws/pipermail/sudo-users/2000-March/000052.html

Pero debe tener en cuenta que no dejar rastro en bash_history es solo una cuestión de comenzar un comando con un espacio, etcpp. La historia es una ayuda, no una herramienta de registro.

Saludos desde Alemania, Daniel Leschkowski


fuente
-1

La lógica se aplica a muchos otros objetivos.
¿Y cómo leer .sh_history de cada usuario desde / home / filesystem? ¿Qué pasa 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í está el guión.

Igor MV
fuente