Frage

Wie könnte ich programmgesteuert erkennen, ob eine Linux -Maschine von einem Benutzer gesteuert wird, der sich bei der Verwendung einer seriellen Konsole angemeldet hat? Ich würde die Überprüfung durch Bash machen.

War es hilfreich?

Lösung

Das who Der Befehl gibt Ihnen eine Liste von Benutzern, die angemeldet sind und wo sie angemeldet sind.

Zum Beispiel:

~$ who
john    pts/1        2009-07-29 10:06 (ourcompanyvpnserver.org)
mary    tty7        2009-07-29 10:11 (:0)
frank    pts/2        2009-07-27 12:10 (att.net)
jim    pts/4        2009-07-28 14:51 (comcast.net)

Die Ausgabe von Wer anzeigt "Wie" die Benutzer angemeldet sind. Benutzer Mary's Console ist in Kontakt tty7 Die TTY weist darauf hin, dass Mary physisch über eine Serienkonsole angemeldet ist. Mary hat also die Fähigkeit, den Computer über die serielle Konsole zu steuern.

Um festzustellen, was sie tut, müssten Sie sie ansehen. Normalerweise ist dies unter /home/mary/.bash_history.

Wenn Sie alle Befehle, die über eine serielle Konsole erhältlich sind, langfristig protokollieren möchten (auch bekannt als an dieser Maschine angehängte Tastatur), würde ich den linux -seriellen Treiber so ändern, dass sie alle Eingaben und Ausgaben protokollieren. Ich weiß nicht, wie schwer das wäre.

Andere Tipps

Versuchen Sie es zu analysieren Finger. Normalerweise können Sie IP/DNS -Adressen abholen. Ich habe nie eine serielle Verbindung gesehen, also konnte ich nicht sagen, ob sie eine serielle Verbindung anzeigt oder nicht.

Sie können verwenden wer Aus der Befehlszeile.

Wenn Sie es auf einem lokalen Computer überprüfen möchten ...

$ who >> log.txt

Und prüfen Sie, ob in dieser Datei eine zusätzliche Zeile oder was auch immer Sie wollen.

Wenn Sie möchten, ob Ihr Skript über eine serielle Schnittstelle auf einem Terminal ausgeführt wird, können Sie TTY einfach ausführen und den Gerätenamen überprüfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top