Linux: cómo detectar si una computadora está siendo controlada a través de una consola serie
Pregunta
¿Cómo podría detectar mediante programación si una máquina Linux está siendo controlada por un usuario que ha iniciado sesión con una consola serie? Yo estaría haciendo la comprobación a través de BASH.
Solución
El comando who
le dará una lista de los usuarios que iniciaron sesión y desde dónde iniciaron sesión.
Por ejemplo:
~$ 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)
El resultado de quién indica " cómo " los usuarios han iniciado sesión. La consola del usuario Mary está conectada a tty7
El tty indica que Mary ha iniciado sesión físicamente a través de una consola serie. Entonces Mary tiene la capacidad de controlar la computadora a través de la consola en serie.
Para determinar qué está haciendo, necesitaría mirar su archivo her.bash_history. Por lo general, esto se encuentra en /home/mary/.bash_history.
Si desea registrar a largo plazo todos los comandos que entran en una consola en serie (también conocido como teclado conectado a esa máquina), modificaría el controlador en serie de Linux para registrar todas las entradas y salidas. No sé lo difícil que sería eso.
Otros consejos
Intente analizar dedo . Por lo general, puede elegir direcciones IP / DNS. Nunca he visto una conexión en serie, por lo que no podría decir si muestra una conexión en serie o no.
Puede usar who desde la línea de comando.
Si desea verificarlo en una computadora local ...
$ who >> log.txt
Y comprobando si hay alguna línea adicional en ese archivo, o lo que quieras.
En caso de que quiera comprobar si su script se ejecuta en un terminal a través de una interfaz en serie, puede ejecutar tty y verificar el nombre del dispositivo.