El comando who en Linux enumera todos los usuarios registrados en el sistema. Es bastante fácil de usar.
Simplemente ingrese quién en la línea de comando y se mostrarán todos los usuarios conectados actualmente en su sistema Linux.
[email protected]:~# who
root pts/0 2020-02-03 06:48 (152.72.29.73)
john pts/1 2020-02-03 07:02 (187.41.92.90)
jane pts/2 2020-02-03 07:02 (252.142.106.85)
Tenga en cuenta que solo muestra los usuarios que actualmente están conectados a su sistema. Hay otras formas de ver a todos los usuarios en un sistema Linux como compgen.
El comando who tiene algunas opciones para obtener otra información específica sobre los usuarios registrados.
Usando who command en Linux
Esta es la sintaxis del comando who:
who [options] [filename]
Ya has visto qué información muestra el comando who sin ninguna opción. Veamos ahora qué opciones ofrece.
Imprimir el tiempo de inactividad de los usuarios
Junto con la información habitual, también puede imprimir el tiempo de inactividad de los usuarios. Si un usuario no ha escrito nada durante un período de tiempo, se refleja como el tiempo de inactividad.
who -u
Como puede ver en el siguiente resultado, el usuario john ha estado inactivo durante 2 minutos y 3 segundos.
[email protected]:~# who -u
root pts/0 2020-02-03 06:48 . 10669 (152.72.29.73)
john pts/2 2020-02-03 07:02 02:03 31528 (187.41.92.90)
¿Qué podrías hacer con esta información? Un uso práctico es implementar una capa de seguridad adicional al desconectar automáticamente a los usuarios que están inactivos durante más de un tiempo determinado.
Mostrar solo los nombres de usuario (y su recuento)
Con la opción -q, solo puede mostrar los usuarios registrados y su recuento.
[email protected]:~# who -q
root john jane
# users=3
Esto es similar a la salida del 'comando de usuarios' con la excepción del recuento de usuarios registrados.
Comprobar si los usuarios pueden recibir mensajes instantáneos o no
¿Sabía que los usuarios pueden enviarse mensajes entre sí en la terminal de Linux usando herramientas de línea de comandos como mesg? Por supuesto, depende del usuario decidir si desea recibir dichos mensajes o no.
Puede verificar si un usuario puede recibir mensajes o no usando la opción -T :
who -T
En el resultado a continuación, + significa sí y – significa no. Si ves ?, significa desconocido.
[email protected]:~# who -T
root - pts/0 2020-02-03 06:48 (152.72.29.73)
john + pts/2 2020-02-03 07:02 (187.41.92.90)
Mostrar información sobre usted
Una especie de alternativa whoami. Muestra la información del usuario, pero solo para usted (es decir, el usuario asociado con el terminal actual).
who -m
Verificar la última hora de arranque del sistema
Algo similar al comando uptime, puede obtener información sobre la última vez que su sistema arrancó usando la opción -b del que manda:
who -b
Como puede ver, mi servidor de prueba se inició por última vez a las 09:41 del 19 de diciembre de 2019.
[email protected]:~# who -b
system boot 2019-12-19 09:41
Imprime el nombre de host de los usuarios registrados
Esto podría funcionar para usuarios en la misma subred. Con la opción de búsqueda , puede mostrar el nombre de host de los usuarios que iniciaron sesión.
Revisar inicios de sesión anteriores e información de inicios de sesión incorrectos
Probablemente sepa que en la jerarquía del sistema de archivos de Linux, almacena información y registros en tiempo de ejecución.
El comando Who obtiene la información de /var/run/utmp. Puede especificar otros archivos de registro para obtener información diferente.
Por ejemplo, puede obtener información sobre inicios de sesión anteriores si utiliza el archivo /var/log/wtmp.
[email protected]:~# who /var/log/wtmp
root pts/0 2020-02-03 06:48 (152.72.29.73)
jane pts/1 2020-02-03 07:02 (252.142.106.85)
john pts/2 2020-02-03 07:02 (187.41.92.90)
jane pts/1 2020-02-03 07:12 (252.142.106.85)
jane pts/1 2020-02-03 08:55 (252.142.106.85)
Del mismo modo, puede ver todos los intentos fallidos de inicio de sesión utilizando el archivo /var/log/btmp.
[email protected]:~# who /var/log/btmp
Por supuesto, depende de si su sistema está configurado para registrar esta información.
Al final…
Hay algunas opciones más como -H que agrega un encabezado como la primera línea de la salida. Siempre puede explorarlos a través de su página man.
He enumerado, lo que considero, los ejemplos importantes de los que mandan. Espero que les guste este pequeño y rápido tutorial de comandos de Linux.