Grabar / Espiar / Registrar en tiempo real el uso de una terminal en GNU/Linux (strace)

Esta combinación de comandos visualiza todo lo que pasa en una determinada terminal de nuestro sistema en tiempo real, es decir, los comandos que son ejecutados y la salida de los mismos. También permite guardar la salida en un fichero para su posterior análisis.

Buscar el número de proceso, para el ejemplo, la terminal pts/1 tiene un PID 6207.

ps aux | grep -i bash
root      6198  0.0  0.0  16268  4180 pts/0    S+   02:33   0:00 bash
busi      6207  0.0  0.0  16620  4460 pts/1    Ss   02:33   0:00 /bin/bash

Ver en tiempo real el uso de una terminal en GNU/linux. (No Passwords)

strace -f -e write=1,2,5 -e read=0 -s 512 -v -p 6207 2>&1 | sed -un "/^ |/p" | sed -ue "s/^.\{9\}\(.\{50\}\).\+/\1/g" -e 's/ //g' |  xxd -r -p

Ver en tiempo real el uso de una terminal en GNU/linux y registrar todo en /root/fichero.log. (No Passwords)

strace -f -e write=1,2,5 -e read=0 -s 512 -v -p 6207 2>&1 | sed -un "/^ |/p" | sed -ue "s/^.\{9\}\(.\{50\}\).\+/\1/g" -e 's/ //g' | tee /root/fichero.log |  xxd -r -p

Reproducir el registro guardado anteriormente.

cat /root/fichero.log | xxd -r -p

Ver en tiempo real el uso de una terminal en GNU/linux. (Passwords de “su” incluidos)

strace -f -e write=1,2,5 -e read=0 -s 512 -v -p 6207 2>&1 | sed -un "/^ |/p" | sed -ue "s/^.\{9\}\(.\{50\}\).\+/\1/g" -e 's/ //g' |  xxd -r -p

NOTA: Los comandos aparecerán con las letras por duplicado.

Ver contenido / Espiar / sacar texto de una TTY en uso.

# tty1 = /dev/vcs1
# tty2 = /dev/vcs2
# tty3 = /dev/vcs3
cat /dev/vcs3 > $HOME/contenido_tty3

Scribery

Proyecto Scribery: http://scribery.github.io/

El proyecto Scribery ofrece una serie de herramientas de código abierto para grabar sesiones de usuario en sistemas GNU/Linux. Permite la exportación en formato json de los datos en tiempo real a sistemas como Elasticsearch.