
Actualmente tengo una sesión raíz SSH en un servidor Debian Wheezy y veo que otro usuario ha iniciado sesión (con una cuenta sin privilegios). Como el usuario todavía está conectado, el comando history
no muestra lo correcto porque el historial no se vació y luego el ~/.bash_history
archivo no está actualizado (aún está en la memoria).
¿Cómo puedo volcar la memoria para ver qué ha hecho un usuario durante su sesión cuando todavía está conectado?
Respuesta1
Aquí hay un pequeño script que debería deshacerse del historial. Tenga en cuenta que necesita ser root para robar espacio en la memoria de otros procesos.
#!/bin/bash
if [ $# -eq 0 ]; then
echo "usage: $0 <bash_pid>"
exit 1
fi
gdb -batch \
--eval "set sysroot /" \
--eval "attach $1" \
--eval "call write_history(\"/tmp/bash_history-$1.txt\")" \
--eval 'detach' \
--eval 'q'
exit 0
ps Ver un error como 'advertencia: No se pudieron cargar los símbolos de la biblioteca compartida para...' puede ocurrir junto con algunas otras líneas de error. Intente encontrar el archivo histórico de /tmp/ antes de comenzar demasiado convencido de que el script no funcionó.
Respuesta2
Realmente no puedes confiar en bash_history porque no siempre se guarda o se puede sobrescribir. Además, normalmente no todo se guarda durante el uso de sesiones múltiples (eso depende de la configuración, por supuesto).
Si realmente necesita realizar un seguimiento de dichos datos, continuaría configurando acct
herramientas útiles como:
ac
El comando imprime las estadísticas de inicios y cierres de sesión de los usuarios (tiempo de conexión) en horas.lastcomm
El comando imprime la información de los comandos del usuario ejecutados previamente.accton
El comando se utiliza para activar o desactivar el proceso de contabilidad.sa
El comando resume la información de los comandos ejecutados previamente.last
ylastb
los comandos muestran una lista de los últimos usuarios que iniciaron sesión.
Instalar:
apt-get install acct
Luego debes habilitar el servicio.
service pcacct start