Cuando inicie sesión en una máquina, puedo averiguar los dispositivos pseudo-terminales de cada usuario a partir de la salida de w
. Siendo un administrador de sistemas, ¿es posible que escuche a escondidas este terminal sin que el usuario lo sepa? En otras palabras, me gustaría ver todo lo que se hace en este terminal como salida en mi propio terminal.
Tenga en cuenta lo siguiente:
- Este no es un caso de uso práctico para monitorear las actividades de los usuarios: soy consciente de que existen herramientas de auditoría del sistema para eso. Tengo curiosidad por saber si se puede hacer.
- Soy consciente de esta pregunta y no parece cubrir lo que estoy preguntando, ya que todas las soluciones sugeridas son invasivas (el usuario estaría al tanto de lo que estoy haciendo) o producen demasiado ruido (el
strace
solución). La única solución que se acerca es la que sugiere usargdb
. Pero esto solo me permite ver stdout de la otra terminal.
Lo que he intentado
Intenté esto desde mi terminal:
tee /dev/pts/user_pts </dev/pts/user_pts
Esto me permite ver cada carácter que el usuario escribe en el otro pseudo-terminal a medida que lo escribe. El problema es que, cada pocos caracteres, se "saltaría": mostraría un carácter falso en un dispositivo terminal pero no en el otro. También evita la ejecución de cualquier comando desde el dispositivo pseudo terminal del usuario. No estoy muy seguro de por qué sucede esto y si hay una manera de mejorarlo.
Lo que me gustaria ver
USER TERMINAL | MY TERMINAL
$ echo "Test" | # slick_command_here
Test | echo "Test"
$ | Test
ttysnoop
o probablementepeekfd
.