Wenn ich bei einem Computer angemeldet bin, kann ich die Pseudo-Endgeräte aller Benutzer aus der Ausgabe von herausfinden w
. Kann ich als Sysadmin dieses Terminal abhören, ohne dass der Benutzer es merkt? Mit anderen Worten, ich möchte alles, was auf diesem Terminal ausgeführt wird, als Ausgabe auf meinem eigenen Terminal sehen.
Bitte beachten Sie Folgendes:
- Dies ist kein praktischer Anwendungsfall für die Überwachung von Benutzeraktivitäten: Ich bin mir bewusst, dass es dafür Systemüberwachungs-Tools gibt. Ich bin nur gespannt, ob es geht.
- Ich bin mir dieser Frage bewusst und es scheint nicht zu decken, wonach ich frage, da alle dort vorgeschlagenen Lösungen entweder invasiv sind (der Benutzer würde sich dessen bewusst sein, was ich tue) oder zu viel Lärm erzeugen (die)
strace
Lösung). Die eine Lösung, die nahe kommt, ist die, die die Verwendung vorschlägtgdb
. Damit sehe ich aber nur die stdout des anderen Terminals.
Was ich probiert habe
Ich habe das von meinem Terminal aus versucht:
tee /dev/pts/user_pts </dev/pts/user_pts
Dadurch kann ich jedes Zeichen sehen, das der Benutzer in das andere Pseudoterminal eingibt, während er es eingibt. Das Problem ist, alle paar Zeichen würde es "überspringen": Es würde ein Schurkenzeichen auf einem Endgerät zeigen, aber nicht das andere. Es verhindert auch die Ausführung von Befehlen vom Pseudo-Endgerät des Benutzers. Ich bin mir nicht sicher, warum dies geschieht und ob es einen Weg gibt, es zu verbessern.
Was ich gerne sehen würde
USER TERMINAL | MY TERMINAL
$ echo "Test" | # slick_command_here
Test | echo "Test"
$ | Test
ttysnoop
oder wahrscheinlichpeekfd
.