Cómo comprobar si un usuario está actualmente conectado en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo verificar qué usuarios están actualmente conectados a un sistema Linux. Explorará comandos fundamentales como who para enumerar los usuarios conectados y w para obtener información más detallada sobre sus sesiones y actividades.

Al final de este laboratorio, podrá identificar rápidamente los usuarios activos en un sistema Linux y entender la información básica sobre sus sesiones de inicio de sesión, incluyendo cómo inspeccionar los registros de inicio de sesión en /var/run/utmp.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") linux/UserandGroupManagementGroup -.-> linux/whoami("User Identifying") subgraph Lab Skills linux/cat -.-> lab-558775{{"Cómo comprobar si un usuario está actualmente conectado en Linux"}} linux/ps -.-> lab-558775{{"Cómo comprobar si un usuario está actualmente conectado en Linux"}} linux/whoami -.-> lab-558775{{"Cómo comprobar si un usuario está actualmente conectado en Linux"}} end

Listar usuarios conectados con who

En este paso, aprenderá cómo listar los usuarios actualmente conectados al sistema utilizando el comando who. Este es un comando fundamental tanto para administradores de sistemas como para usuarios para ver quién está activo en el sistema.

El comando who muestra información sobre los usuarios que están actualmente conectados. Esta información generalmente incluye el nombre de usuario, la línea de terminal que están utilizando, la hora en que se conectaron y el host remoto desde el que se conectaron (si corresponde).

Vamos a probarlo. Abra su terminal si no está abierta. Puede encontrar el icono de Xfce Terminal en el lado izquierdo de su escritorio.

Escriba el siguiente comando y presione Enter:

who

Debería ver una salida similar a esta:

labex    :0           <timestamp> (:0)

Analicemos la salida:

  • labex: Este es el nombre de usuario del usuario conectado. En este entorno de LabEx, el usuario predeterminado es labex.
  • :0: Esto indica la línea de terminal o la pantalla que se está utilizando. :0 generalmente se refiere a la pantalla gráfica principal.
  • <timestamp>: Esto muestra la fecha y hora en que el usuario se conectó. El formato y el contenido exactos de la marca de tiempo pueden variar ligeramente.
  • (:0): Esto a menudo proporciona información adicional sobre la sesión de inicio de sesión, en este caso, confirmando la pantalla.

El comando who es simple pero poderoso para comprobar rápidamente quién está utilizando el sistema. Es un buen primer paso para entender la actividad de los usuarios.

Recuerde, ¡la práctica es la clave! Intente ejecutar el comando varias veces para familiarizarse con él.

Haga clic en Continuar para pasar al siguiente paso.

Verificar sesiones de usuario con el comando w

En este paso, explorará el comando w, que proporciona información más detallada sobre los usuarios actualmente conectados y lo que están haciendo. Mientras que who le da una lista rápida, w ofrece una instantánea de la actividad actual del sistema relacionada con las sesiones de usuario.

El comando w muestra quién está conectado y lo que está haciendo. Es una herramienta útil para monitorear el uso del sistema e identificar los procesos activos asociados a cada usuario.

Vamos a ejecutar el comando w en su terminal. Si la cerró, abra de nuevo el Xfce Terminal.

Escriba el siguiente comando y presione Enter:

w

Debería ver una salida similar a esta:

 <timestamp> up <uptime>,  <users> users,  load average: <load_avg>
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
labex    :0       :0               <login_time>   <idle_time>   <jcpu_time>   <pcpu_time> w

Analicemos las diferentes partes de la salida:

  • La primera línea proporciona un resumen:
    • <timestamp>: La hora actual.
    • up <uptime>: Cuánto tiempo ha estado en funcionamiento el sistema desde el último arranque.
    • <users> users: El número de usuarios actualmente conectados.
    • load average: <load_avg>: La carga promedio del sistema en los últimos 1, 5 y 15 minutos. Esto indica el número promedio de procesos esperando para ejecutarse.
  • La fila de encabezado (USER, TTY, FROM, LOGIN@, IDLE, JCPU, PCPU, WHAT) describe las columnas que siguen para cada usuario conectado.
  • USER: El nombre de usuario.
  • TTY: La línea de terminal que el usuario está utilizando.
  • FROM: El host remoto desde el que el usuario se conectó (si corresponde). Para una sesión gráfica local como esta, a menudo muestra :0.
  • LOGIN@: La hora en que el usuario se conectó.
  • IDLE: El tiempo de inactividad de la terminal.
  • JCPU: El tiempo utilizado por todos los procesos adjuntos a la tty.
  • PCPU: El tiempo utilizado por el proceso actual.
  • WHAT: La línea de comandos del proceso actual del usuario. En este caso, muestra w porque ese es el comando que acaba de ejecutar.

El comando w le da una vista más dinámica en comparación con who, mostrando no solo quién está conectado sino también lo que están haciendo activamente.

Experimente con el comando w. Encontrará que es útil para evaluar rápidamente la actividad del sistema.

Haga clic en Continuar para pasar al siguiente paso.

Inspeccionar registros de inicio de sesión en /var/run/utmp

En este paso, aprenderá sobre el archivo /var/run/utmp y cómo comandos como who y w obtienen su información de él. Este archivo es una parte crucial de cómo Linux registra quién está conectado al sistema.

El archivo /var/run/utmp es un archivo binario que contiene información sobre los usuarios actualmente conectados al sistema. Se actualiza constantemente a medida que los usuarios inician y cierran sesión. Comandos como who, w y users leen este archivo para mostrar la información de inicio de sesión actual.

Debido a que /var/run/utmp es un archivo binario, no puede simplemente ver su contenido con comandos como cat o less como lo haría con un archivo de texto. Hacerlo resultaría en caracteres ilegibles.

Intentemos verlo con cat para ver qué sucede (y entender por qué no hacemos esto):

cat /var/run/utmp

Verá muchos caracteres garbled, lo cual es esperado para un archivo binario.

<binary_output>

Para leer el contenido de /var/run/utmp en un formato legible por humanos, normalmente se utilizan comandos diseñados para analizar este archivo, como who o w, que utilizó en los pasos anteriores.

Otro comando que lee y muestra específicamente el contenido de /var/run/utmp es utmpdump. Este comando es útil para depurar o examinar los datos sin procesar del archivo.

Usemos utmpdump para ver el contenido de /var/run/utmp.

utmpdump /var/run/utmp

Debería ver una salida estructurada y legible, que muestra registros para cada sesión de inicio de sesión. La salida exacta dependerá del estado actual del sistema, pero se verá algo así:

Utmp dump of /var/run/utmp
[<type>] [<pid>] [<line>] [<id>] [<user>] [<host>] [<exit>] [<session>] [<tv_sec>] [<tv_usec>] [<addr_v6>]
...
[7] [ <pid> ] [ :0 ] [ :0 ] [ labex  ] [ :0 ] [  0,  0 ] [ <session_id> ] [ <timestamp> ] [ <usec> ] [ <ipv6_address> ]
...

La salida muestra varios campos para cada entrada en el archivo utmp, incluyendo el tipo de entrada (como inicio de sesión de usuario), ID de proceso, línea de terminal, nombre de usuario, host, hora de inicio de sesión y más.

Comprender /var/run/utmp le ayuda a apreciar cómo Linux registra las sesiones de usuario y cómo funcionan comandos como who y w por debajo.

Haga clic en Continuar para completar este laboratorio.

Resumen

En este laboratorio, aprendiste cómo verificar qué usuarios están actualmente conectados en un sistema Linux. Comenzaste utilizando el comando who, que proporciona una lista básica de los usuarios conectados, su terminal, hora de inicio de sesión y origen. Este comando es una herramienta fundamental para identificar rápidamente a los usuarios activos.

Después del comando who, exploraste el comando w. Aunque no se proporcionaron todos los detalles del comando w en el extracto, se lo presenta como una herramienta que ofrece información más detallada sobre los usuarios conectados y sus actividades actuales, más allá de la simple lista que proporciona who.