Dado el nombre de una máquina, quiero comprobar si alguien inició sesión en esa máquina o no. Sólo una respuesta sí/no sería suficiente (no quiero su nombre de usuario). ¿Alguna pista sobre qué comando buscar?
Por "iniciar sesión", me refiero a usar una interfaz de usuario gráfica en esa máquina, ssh no cuenta.
Puede asumir que tengo un inicio de sesión ssh autorizado para esta máquina.
Respuesta1
who
muestra quién ha iniciado sesión. Si están en una interfaz gráfica de usuario, su "terminal" es la pantalla X a la que están conectados (de lo contrario, el tty):
paul :0 2013-02-20 11:43
Entonces
who | grep paul
No devolvería nada si no estaba conectado, o algo si lo estaba.
Si desea excluir las conexiones ssh y de consola, entonces:
who | grep -v pts | grep paul
Puede ejecutar este comando de forma remota agregando al comando ssh:
ssh user@host 'who | grep -v pts | grep paul'
Esto iniciará sesión en la máquina remota, realizará la operación who
y devolverá los resultados.