Linux: Comment détecter si un ordinateur est contrôlé via une console série
Question
Comment puis-je détecter par programme si une machine Linux est contrôlée par un utilisateur qui s'est connecté à l'aide d'une console série? Je ferais la vérification par BASH.
La solution
La commande who
vous fournira une liste des utilisateurs connectés et leur origine.
Par exemple:
~$ 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)
Le résultat de qui indique "Comment" les utilisateurs sont connectés. La console de l'utilisateur de Mary est connectée à tty7
. Le message indique que Mary est connectée physiquement via une console série. Mary a donc la capacité de contrôler l’ordinateur via la console série.
Pour déterminer ce qu’elle fait, vous devez consulter le fichier her.bash_history. Il s’agit généralement de /home/mary/.bash_history.
Si vous souhaitez enregistrer à long terme toutes les commandes qui arrivent via une console série (un clavier associé à cette machine), je modifierais le pilote série Linux pour enregistrer toutes les entrées et les sorties. Je ne sais pas à quel point ce serait difficile.
Autres conseils
Essayez d’analyser finger . Vous pouvez généralement choisir des adresses IP / DNS. N'ayant jamais vu de connexion série, je ne saurais dire si elle affiche une connexion série ou non.
Vous pouvez utiliser who à partir de la ligne de commande.
Si vous souhaitez le vérifier sur un ordinateur local ...
$ who >> log.txt
Et vérifier s'il y a une ligne supplémentaire dans ce fichier ou ce que vous voulez.
Si vous voulez vérifier que votre script fonctionne sur un terminal via une interface série, vous pouvez simplement exécuter tty et vérifier le nom du périphérique.