Domanda

Come potrei rilevare a livello di codice se una macchina Linux è controllata da un utente che ha effettuato l'accesso usando una console seriale? Farei il controllo tramite BASH.

È stato utile?

Soluzione

Il comando who ti darà un elenco di utenti che hanno effettuato l'accesso e da dove hanno effettuato l'accesso.

Ad esempio:

~$ 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)

L'output di chi indica " come " gli utenti sono connessi. La console dell'utente Mary è agganciata a tty7 La tty indica che Mary è connessa fisicamente tramite una console seriale. Quindi Mary ha la capacità di controllare il computer attraverso la console seriale.

Per determinare cosa sta facendo, dovresti guardare il file her.bash_history. Di solito questo è sotto /home/mary/.bash_history.

Se vuoi registrare a lungo termine tutti i comandi che arrivano su una console seriale (aka tastiera collegata a quella macchina), modificherei il driver seriale di Linux per registrare tutti gli input e output. Non so quanto sarebbe difficile.

Altri suggerimenti

Prova ad analizzare finger . Di solito è possibile raccogliere indirizzi IP / DNS. Non ho mai visto una connessione seriale, quindi non ho potuto dire se mostra una connessione seriale o meno.

Puoi usare who dalla riga di comando.

Se vuoi controllarlo su un computer locale ...

$ who >> log.txt

E controllando se c'è qualche riga in più in quel file, o qualunque cosa tu voglia.

Nel caso in cui intendi verificare se lo script viene eseguito su un terminale tramite un'interfaccia seriale, puoi semplicemente eseguire tty e controllare il nome del dispositivo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top