Une fois connecté à une machine, je peux trouver le ou les périphériques pseudo-terminaux de chaque utilisateur à partir de la sortie de w
. Étant un administrateur système, est-il possible pour moi d'écouter ce terminal à l'insu de l'utilisateur? En d'autres termes, je voudrais voir tout ce qui se fait sur ce terminal comme sortie sur mon propre terminal.
Veuillez noter ce qui suit:
- Il ne s'agit pas d'un cas d'utilisation pratique de la surveillance des activités des utilisateurs: je sais qu'il existe des outils d'audit système pour cela. Je suis simplement curieux de savoir si cela peut être fait.
- Je suis conscient de cette question et elle ne semble pas couvrir ce que je demande, car toutes les solutions suggérées sont invasives (l'utilisateur serait conscient de ce que je fais) ou produisent trop de bruit (le
strace
Solution). La seule solution qui se rapproche est celle qui suggère d'utilisergdb
. Mais cela ne me permet que de voir la sortie standard de l'autre terminal.
Ce que j'ai essayé
J'ai essayé cela depuis mon terminal:
tee /dev/pts/user_pts </dev/pts/user_pts
Cela me permet de voir chaque caractère que l'utilisateur tape dans l'autre pseudo-terminal pendant qu'il le tape. Le problème est que, sur quelques caractères, il "sauterait": il montrerait un caractère escroc sur un terminal mais pas sur l'autre. Il empêche également l'exécution de toute commande à partir du pseudo-terminal de l'utilisateur. Je ne sais pas vraiment pourquoi cela se produit et s'il existe un moyen de l'améliorer.
Ce que j'aimerais voir
USER TERMINAL | MY TERMINAL
$ echo "Test" | # slick_command_here
Test | echo "Test"
$ | Test
ttysnoop
ou probablementpeekfd
.