Cómo listar y gestionar usuarios en Ubuntu: Guía completa con comandos prácticos

目次

1. Introducción

Ubuntu es una de las distribuciones de Linux más populares, utilizada por una gran cantidad de usuarios, desde entornos personales hasta servidores empresariales. La gestión de cuentas de usuario es esencial para la administración del sistema. En particular, comprobar la lista de usuarios registrados es útil para la seguridad y la organización de cuentas.

En este artículo explicaremos en detalle cómo verificar la lista de usuarios en Ubuntu. Presentaremos desde los comandos básicos hasta métodos para obtener información detallada, de manera que resulte útil tanto para principiantes como para administradores avanzados.

侍エンジニア塾

2. Cómo comprobar la lista de usuarios en Ubuntu

En Ubuntu, la información de los usuarios puede obtenerse fácilmente mediante archivos y comandos específicos. A continuación, se muestran los métodos principales.

2.1 Mostrar la lista de usuarios con /etc/passwd

En Ubuntu, toda la información de los usuarios se guarda en el archivo /etc/passwd. Al visualizar este archivo, se pueden consultar todos los usuarios registrados.

Ejemplo de comando

cat /etc/passwd

Este comando mostrará información con el siguiente formato:

root:x:0:0:root:/root:/bin/bash
user1:x:1000:1000:User One,,,:/home/user1:/bin/bash
user2:x:1001:1001:User Two,,,:/home/user2:/bin/bash

Cada línea está separada por el carácter «:» (dos puntos) e incluye los siguientes campos:

  1. Nombre de usuario
  2. Contraseña (actualmente oculta con x)
  3. UID (User ID)
  4. GID (Group ID)
  5. Información adicional (comentarios)
  6. Directorio home
  7. Shell por defecto

Este archivo también contiene usuarios del sistema. Para listar solo los usuarios con acceso interactivo, se pueden usar filtros adicionales.

2.2 Obtener solo los nombres de usuario

Para listar únicamente los nombres de usuario, se pueden usar los siguientes comandos:

cut -d: -f1 /etc/passwd

O bien, con awk:

awk -F':' '{ print $1 }' /etc/passwd

Ejemplo de salida:

root
user1
user2

2.3 Buscar un usuario específico

Para verificar si un usuario existe en el sistema, se puede usar grep:

grep 'user1' /etc/passwd

Esto mostrará únicamente la información relacionada con user1.

2.4 Obtener lista de grupos desde /etc/group

Para comprobar los grupos del sistema, se consulta el archivo /etc/group:

cat /etc/group | cut -d: -f1

También es posible comprobar los grupos de un usuario específico:

groups user1

Ejemplo de salida:

user1 : user1 sudo

Esto indica que user1 pertenece también al grupo sudo.

3. Cómo comprobar los usuarios actualmente conectados

En Ubuntu existen varios métodos para verificar qué usuarios están conectados en el sistema. Mediante comandos específicos se puede identificar qué sesiones están abiertas y obtener información detallada de cada acceso.

3.1 Ver usuarios conectados con who

El comando who muestra todos los usuarios actualmente conectados.

Ejemplo de comando

who

Ejemplo de salida

user1    tty1         2025-02-16 10:05
user2    pts/0        2025-02-16 11:30

Explicación de los campos

  1. Nombre de usuario (usuario conectado)
  2. Nombre del terminal (consola física tty1 o conexión remota pts/0)
  3. Hora de inicio de sesión

Este comando es sencillo y útil cuando solo se desea verificar rápidamente qué usuarios están conectados.

3.2 Ver información detallada con w

El comando w proporciona más detalles que who.

Ejemplo de comando

w

Ejemplo de salida

 11:35:25 up 2:15,  2 users,  load average: 0.03, 0.02, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
user1    tty1                      10:05    1:30m  0.10s  0.10s -bash
user2    pts/0    192.168.1.10      11:30    0.00s  0.05s  0.02s sshd

Explicación de los campos

  • Tiempo activo del sistema (up 2:15)
  • Número de usuarios conectados (2 users)
  • Carga del sistema (load average)
  • Usuario (USER)
  • Terminal (TTY)
  • Origen de la conexión (FROM)
  • Hora de inicio de sesión (LOGIN@)
  • Tiempo inactivo (IDLE)
  • Uso de CPU (JCPU, PCPU)
  • Proceso en ejecución (WHAT)

Este comando resulta muy útil para la administración de accesos remotos, ya que muestra también la dirección IP en el campo FROM.

3.3 Ver usuarios conectados de forma simple con users

Si solo se desea listar los nombres de usuario conectados, se puede usar users.

Ejemplo de comando

users

Ejemplo de salida

user1 user2

Es una versión simplificada de who, que muestra únicamente los nombres.

3.4 Ver el usuario actual con whoami

Para identificar qué usuario está ejecutando el terminal en ese momento, se usa whoami.

Ejemplo de comando

whoami

Ejemplo de salida

user1

Esto confirma bajo qué cuenta se están ejecutando los comandos.

3.5 Ver historial de inicios de sesión con last

El comando last permite consultar el historial de accesos al sistema.

Ejemplo de comando

last

Ejemplo de salida

user1    pts/0        192.168.1.10     Mon Feb 15 10:20   still logged in
user2    tty1                          Mon Feb 15 09:30 - 10:00  (00:30)
root     tty1                          Sun Feb 14 22:15 - 23:45  (01:30)

Explicación de los campos

  • Nombre de usuario
  • Terminal de conexión (tty1, pts/0, etc.)
  • Origen de la conexión (IP)
  • Hora de inicio de sesión
  • Hora de cierre de sesión (still logged in indica sesión activa)
  • Duración de la sesión

Esto resulta útil para monitorear accesos anteriores y detectar posibles conexiones no autorizadas.

4. Cómo consultar información detallada de usuarios

Ubuntu ofrece varios comandos para obtener información detallada de los usuarios registrados, como UID, GID, shell de inicio de sesión y grupos. Esto ayuda a configurar permisos y administrar el sistema de manera correcta. A continuación, veremos cómo usar id, finger y chage.

4.1 Ver UID, GID y grupos con id

El comando id muestra el UID (User ID), el GID (Group ID) y los grupos asociados.

Ejemplo de comando
id user1
Ejemplo de salida
uid=1001(user1) gid=1001(user1) groups=1001(user1),27(sudo),1002(docker)
Explicación
  • uid=1001(user1) → Identificador de usuario
  • gid=1001(user1) → Grupo principal
  • groups=... → Lista de grupos a los que pertenece

Si se ejecuta sin argumentos (id), mostrará la información del usuario actual.

4.2 Ver grupos de un usuario con groups

El comando groups lista de manera simple los grupos de un usuario.

Ejemplo de comando
groups user1
Ejemplo de salida
user1 : user1 sudo docker

Si se ejecuta sin argumentos (groups), mostrará los grupos del usuario actual.

4.3 Obtener información extendida con finger

El comando finger ofrece datos adicionales como el nombre completo, directorio home, shell y último inicio de sesión.

Instalación

No viene instalado por defecto, por lo que se requiere:

sudo apt install finger
Ejemplo de comando
finger user1
Ejemplo de salida
Login: user1                    Name: User One
Directory: /home/user1           Shell: /bin/bash
Last login: Mon Feb 16 10:20 (UTC) on pts/0
Campos principales
  • Login → nombre de usuario
  • Name → nombre completo configurado
  • Directory → directorio home
  • Shell → shell predeterminado
  • Last login → último inicio de sesión

4.4 Ver caducidad de contraseñas con chage

El comando chage permite consultar la fecha de caducidad de contraseñas y políticas relacionadas.

Ejemplo de comando
sudo chage -l user1
Ejemplo de salida
Last password change            : Jan 15, 2025
Password expires                : Mar 15, 2025
Password inactive               : never
Account expires                 : never
Minimum number of days between password change : 7
Maximum number of days between password change : 60
Number of days of warning before password expires : 5
Campos principales
  • Last password change → último cambio de contraseña
  • Password expires → fecha de caducidad
  • Password inactive → inactividad tras caducidad
  • Account expires → fecha de expiración de la cuenta
  • Minimum/Maximum days → política de cambios
  • Warning days → días de aviso antes de caducar

Esto ayuda a reforzar la seguridad mediante políticas de contraseñas.

5. Gestión de usuarios en Ubuntu (añadir, eliminar, editar)

En Ubuntu, la gestión correcta de los usuarios por parte del administrador es fundamental. Añadir nuevos usuarios, eliminarlos o modificar su información garantiza la seguridad y eficiencia del sistema. A continuación, se explican los comandos adduser, deluser y usermod.

5.1 Añadir usuarios

Para crear un nuevo usuario en Ubuntu se pueden usar adduser o useradd.

5.1.1 Comando adduser (recomendado)

adduser es interactivo y fácil de usar.

Ejemplo de comando
sudo adduser newuser
Flujo interactivo
Adding user `newuser' ...
Adding new group `newuser' (1002) ...
Adding new user `newuser' (1002) with group `newuser' ...
Creating home directory `/home/newuser' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully
Changing the user information for newuser
Enter the new value, or press ENTER for the default
        Full Name []: 
        Room Number []: 
        Work Phone []: 
        Home Phone []: 
        Other []: 
Is the information correct? [Y/n] 
Se crea lo siguiente
  • Cuenta de usuario
  • Grupo propio
  • Directorio home (/home/newuser)
  • Contraseña de inicio de sesión
  • Información básica del usuario

Es la opción más común y sencilla para principiantes.

5.1.2 Comando useradd (para usuarios avanzados)

useradd es más simple y orientado a scripts, pero no crea automáticamente el directorio home.

Ejemplo de comando
sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
Opciones
  • -m → crea el directorio home
  • -s /bin/bash → define la shell predeterminada

Es necesario establecer la contraseña por separado.

5.2 Eliminar usuarios

Para eliminar cuentas innecesarias se usan deluser o userdel.

5.2.1 Comando deluser (recomendado)

Es la contraparte de adduser y elimina usuarios de forma sencilla.

Ejemplo
sudo deluser newuser
Eliminar también el directorio home
sudo deluser --remove-home newuser

Esto elimina también /home/newuser.

5.2.2 Comando userdel (avanzado)

Permite un control más directo, pero requiere precaución.

Ejemplo
sudo userdel newuser
Eliminar junto con el directorio home
sudo userdel -r newuser

5.3 Editar usuarios

Para modificar cuentas existentes se usa usermod.

5.3.1 Cambiar nombre de usuario

sudo usermod -l newname oldname

5.3.2 Cambiar directorio home

sudo usermod -d /new/home/path user1

O mover el directorio actual:

sudo usermod -d /home/newuser -m user1

5.3.3 Modificar grupos

sudo usermod -aG sudo user1

Comprobar grupos:

groups user1

5.3.4 Cambiar contraseña

sudo passwd user1

Ejemplo de salida:

Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully

6. Ejemplos de uso según escenarios

La gestión de usuarios en Ubuntu no se limita a listar, añadir o eliminar. Es clave conocer comandos adaptados a situaciones concretas. Veamos algunos casos comunes.

6.1 Buscar usuarios con condiciones específicas

6.1.1 Mostrar usuarios con privilegios sudo

getent group sudo

Ejemplo de salida:

sudo:x:27:user1,user2

Esto permite identificar rápidamente usuarios administradores.

6.1.2 Listar usuarios con acceso de inicio de sesión

grep '/bin/bash' /etc/passwd

Ejemplo de salida:

user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash

Se excluyen las cuentas del sistema (nologin).

6.1.3 Listar usuarios de sistema (sin acceso)

grep -E '/usr/sbin/nologin|/bin/false' /etc/passwd

Ejemplo de salida:

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
syslog:x:104:110::/home/syslog:/bin/false

6.2 Eliminar periódicamente usuarios inactivos

6.2.1 Ver último inicio de sesión

lastlog

Ejemplo de salida:

Username         Port     From             Latest
root            tty1                      Mon Feb 12 14:02:08 +0000 2025
user1           pts/0    192.168.1.10      Mon Jan 15 10:30:12 +0000 2025
user2           pts/1    192.168.1.20      Never logged in

Usuarios con Never logged in suelen eliminarse.

sudo deluser user2 --remove-home

6.2.2 Revisar fecha del último cambio de contraseña

sudo chage -l user1

Si está desactualizada, se puede forzar un cambio:

sudo passwd --expire user1

6.3 Ver usuarios conectados vía SSH

who | grep pts

Ejemplo:

user1    pts/0        192.168.1.10     11:30

6.4 Exportar información de usuarios en CSV

getent passwd | awk -F: '{print $1 "," $3 "," $4 "," $6}' > users.csv

Ejemplo de salida (users.csv):

root,0,0,/root
user1,1001,1001,/home/user1
user2,1002,1002,/home/user2

Esto facilita el análisis en Excel o Google Sheets.

7. Preguntas frecuentes (FAQ)

A continuación se responden dudas comunes relacionadas con la gestión de usuarios en Ubuntu. Esta sección resulta útil para la resolución de problemas y la administración diaria.

7.1 ¿Es seguro editar directamente /etc/passwd?

Respuesta

No se recomienda. /etc/passwd es un archivo crítico del sistema y editarlo manualmente puede provocar errores de inicio de sesión.

Método recomendado

Usar usermod o vipw para modificarlo de manera segura.

Ejemplo seguro
sudo vipw

7.2 ¿Cuál es la diferencia entre los comandos who y users?

Respuesta

ComandoDescripción
whoMuestra usuarios conectados con detalles (hora, terminal, etc.)
usersLista solo los nombres de usuario conectados

Ejemplo

who

Salida

user1    tty1         2025-02-16 10:05
user2    pts/0        2025-02-16 11:30
users

Salida

user1 user2

7.3 ¿Cómo ver el historial de inicio de sesión de un usuario específico?

Respuesta

Usar el comando last.

Ejemplo
last user1
Salida
user1    pts/0        192.168.1.10     Mon Feb 15 10:20   still logged in
user1    tty1                          Mon Feb 10 09:30 - 10:00  (00:30)

7.4 ¿Cómo cambiar la contraseña de un usuario?

Respuesta

El administrador puede usar passwd.

Ejemplo
sudo passwd user1
Salida
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully

7.5 ¿Se puede desactivar temporalmente un usuario?

Respuesta

Sí, usando usermod para bloquear y desbloquear la cuenta.

Bloquear cuenta
sudo usermod -L user1
Desbloquear cuenta
sudo usermod -U user1

7.6 ¿Cómo añadir un usuario al grupo sudo?

Respuesta

Con el comando usermod -aG.

Ejemplo
sudo usermod -aG sudo user1

7.7 ¿Cómo cambiar el directorio home de un usuario?

Respuesta

Usar usermod -d con la opción -m para mover el contenido.

Ejemplo
sudo usermod -d /new/home/path -m user1
Salida
user1 home directory has been moved to /new/home/path

7.8 ¿Cómo eliminar completamente un usuario y sus datos?

Respuesta

Con deluser o userdel.

Ejemplos
sudo deluser --remove-home user1

O bien:

sudo userdel -r user1

7.9 ¿Cómo ver la actividad detallada de usuarios conectados?

Respuesta

Usar el comando w.

Ejemplo
w
Salida
 11:35:25 up 2:15,  2 users,  load average: 0.03, 0.02, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
user1    tty1                      10:05    1:30m  0.10s  0.10s -bash
user2    pts/0    192.168.1.10      11:30    0.00s  0.05s  0.02s sshd
  • Usuarios conectados
  • Direcciones IP remotas
  • Procesos en ejecución
  • Carga del sistema