Cómo gestionar y listar usuarios en Ubuntu: Guía completa de cuentas de usuario, permisos y comandos

.

目次

1. Introducción

Ubuntu es una distribución de Linux popular utilizada por muchos usuarios, desde entornos personales hasta sistemas de servidores empresariales. Al administrar un sistema Ubuntu, la gestión de cuentas de usuario es esencial. En particular, revisar la lista de usuarios registrados ayuda con la gestión de seguridad y la organización de cuentas.

Este artículo explica cómo listar usuarios en Ubuntu. Cubre desde comandos básicos hasta métodos para obtener información detallada, lo que lo hace útil tanto para principiantes como para administradores experimentados.

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. Los siguientes métodos le permiten comprobar la lista de usuarios.

2.1 Mostrar la lista de usuarios usando /etc/passwd

En Ubuntu, toda la información de los usuarios se almacena en el archivo /etc/passwd. Mostrar este archivo le permite verificar todos los usuarios registrados.

Ejemplo de comando

cat /etc/passwd

Ejecutar este comando muestra la información en 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á compuesta por campos separados por dos puntos (:) que contienen la siguiente información:

  1. Nombre de usuario
  2. Contraseña (ahora representada como x)
  3. ID de usuario (UID)
  4. ID de grupo (GID)
  5. Información del usuario (campo de comentario)
  6. Directorio home
  7. Shell de inicio de sesión predeterminado

Dado que este archivo incluye usuarios del sistema, puede extraer solo los usuarios de inicio de sesión regulares usando los métodos a continuación.

2.2 Listar solo nombres de usuario

Para listar únicamente los nombres de usuario, use el siguiente comando:

cut -d: -f1 /etc/passwd

Alternativamente, puede usar el comando awk:

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

Salida de ejemplo:

root
user1
user2

2.3 Buscar un usuario específico

Para comprobar si un usuario específico existe, use el comando grep:

grep 'user1' /etc/passwd

Este comando muestra solo la entrada relacionada con user1.

2.4 Listar grupos mediante /etc/group

Para comprobar los grupos a los que pertenece un usuario, consulte el archivo /etc/group:

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

Para listar los grupos a los que pertenece un usuario concreto, use:

groups user1

Salida de ejemplo:

user1 : user1 sudo

Esto indica que user1 también es miembro del grupo sudo.

3. Cómo comprobar los usuarios conectados actualmente

Ubuntu ofrece varios comandos para verificar qué usuarios están conectados en ese momento. Estos comandos ayudan a obtener información de sesiones e inicios de sesión.

3.1 Comprobar usuarios conectados usando who

El comando who enumera todos los usuarios que están conectados actualmente.

Ejemplo de comando

who

Salida de ejemplo

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 (p. ej., tty1 para local, pts/0 para SSH)
  3. Hora de inicio de sesión

El comando who es simple y útil cuando se desea comprobar rápidamente el estado de los inicios de sesión.

3.2 Comprobar información detallada usando w

El comando w proporciona información más detallada que who.

Ejemplo de comando

w

Salida de ejemplo

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 de actividad del sistema
  • Número de usuarios conectados
  • Promedio de carga de la CPU
  • Nombre de usuario
  • Terminal
  • Host remoto
  • Hora de inicio de sesión
  • Tiempo inactivo
  • Uso de CPU
  • Proceso en ejecución

La dirección IP en el campo FROM ayuda a verificar inicios de sesión SSH remotos, lo que resulta útil para la monitorización y la gestión de seguridad.

3.3 Mostrar usuarios conectados usando users

Si deseas una lista simplificada que muestre solo los nombres de usuario de los usuarios conectados, el comando users es útil.

Ejemplo de comando

users

Ejemplo de salida

user1 user2

Este comando es una versión simplificada de who y muestra solo los nombres de usuario de los usuarios conectados.

3.4 Identificar al usuario actual con whoami

Para comprobar qué usuario está ejecutando la sesión actual, usa el comando whoami.

Ejemplo de comando

whoami

Ejemplo de salida

user1

Este comando simplemente muestra el nombre de usuario del usuario de la sesión actual, lo que resulta útil para verificar el contexto de ejecución.

3.5 Verificar el historial de inicio de sesión usando last

El comando last te permite revisar el historial de inicio de sesión de los usuarios.

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)
  • Nombre de usuario
  • Terminal usado
  • Dirección IP remota
  • Hora de inicio de sesión
  • Hora de cierre de sesión (o aún conectado)
  • Duración total de la sesión

Este comando ayuda a los administradores a monitorizar accesos anteriores y detectar inicios de sesión sospechosos.

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

Ubuntu ofrece varios comandos para obtener información detallada sobre los usuarios registrados. Revisar detalles como UID, pertenencia a grupos y shell de inicio de sesión ayuda a los administradores a gestionar los permisos con precisión. Esta sección explica los métodos usando id, groups, finger y chage.

4.1 Comprobar UID, GID y grupos usando id

El comando id muestra el UID (Identificador de usuario), GID (Identificador de grupo) y la pertenencia a grupos del usuario.

Ejemplo de comando
id user1
Ejemplo de salida
uid=1001(user1) gid=1001(user1) groups=1001(user1),27(sudo),1002(docker)
  • uid → Identificador de usuario
  • gid → Identificador del grupo principal
  • groups → Todos los grupos a los que pertenece el usuario
Comprobar información del usuario actual
id

4.2 Comprobar pertenencia a grupos mediante groups

El comando groups enumera rápidamente los grupos a los que pertenece un usuario.

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

groups es útil cuando deseas ver solo los nombres de los grupos sin los IDs detallados.

4.3 Obtener detalles del usuario usando finger

El comando finger proporciona información detallada del usuario, como nombre completo, directorio de inicio y tipo de shell.

Comando de instalación
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
  • Login → Nombre de usuario
  • Name → Nombre completo (opcional)
  • Directory → Directorio home
  • Shell → Shell predeterminado
  • Last login → Hora del último inicio de sesión

4.4 Comprobar expiración de contraseña con chage

El comando chage permite a los administradores revisar el período de expiración de la contraseña y el último cambio de contraseña.

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
  • Último cambio de contraseña → Fecha del último cambio de contraseña
  • La contraseña expira → Fecha de expiración de la contraseña
  • Contraseña inactiva → Duración de inactividad antes de que la contraseña sea inválida
  • La cuenta expira → Fecha de expiración de la cuenta
  • Número mínimo de días entre cambios de contraseña
  • Número máximo de días entre cambios de contraseña
  • Días de advertencia antes de que la contraseña expire

Los administradores pueden usar esta información para aplicar políticas de contraseñas y mejorar la seguridad del sistema.

5. Gestión de usuarios en Ubuntu (Agregar, eliminar, modificar)

Una gestión adecuada de usuarios mejora la estabilidad y la seguridad del sistema. Ubuntu ofrece varios comandos administrativos como adduser, deluser y usermod. Esta sección explica cómo agregar, eliminar y modificar usuarios.

5.1 Agregar usuarios

Ubuntu permite agregar nuevos usuarios usando los comandos adduser o useradd.

5.1.1 Comando adduser (recomendado)

El comando adduser proporciona una forma interactiva de agregar usuarios.

sudo adduser newuser

Ejemplo de solicitud interactiva:

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]
  • Cuenta de usuario
  • Grupo dedicado
  • Directorio home (/home/newuser)
  • Contraseña para iniciar sesión
  • Información básica de la cuenta

5.1.2 Comando useradd (avanzado)

El comando useradd es amigable para scripts y ofrece un control más fino, pero no configura todo automáticamente.

sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
  • -m → Crear directorio home
  • -s /bin/bash → Establecer shell de inicio de sesión

Una contraseña debe establecerse por separado al usar este comando.

5.2 Eliminar usuarios

Puedes eliminar usuarios usando deluser o userdel.

5.2.1 Comando deluser (recomendado)

El comando deluser elimina una cuenta de usuario.

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

Esto elimina la cuenta y el directorio /home/newuser.

5.2.2 Comando userdel (avanzado)

El comando userdel ofrece más control.

sudo userdel newuser
sudo userdel -r newuser

5.3 Modificar usuarios existentes

Usa el comando usermod para modificar la información de usuarios existentes.

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
sudo usermod -d /home/newuser -m user1

5.3.3 Modificar pertenencia a grupos

sudo usermod -aG sudo user1
groups user1

5.3.4 Cambiar contraseña

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

6. Escenarios prácticos para la gestión de usuarios

La gestión de usuarios en Ubuntu va más allá de listar y modificar cuentas. Entender cómo aplicar los comandos en escenarios reales es esencial para mantener un entorno seguro y eficiente. Esta sección presenta casos de uso comunes y cómo abordarlos.

6.1 Buscar usuarios que coincidan con criterios específicos

6.1.1 Mostrar usuarios con privilegios de administrador (sudo)

Para listar usuarios con privilegios sudo, use el comando getent para inspeccionar el archivo /etc/group:

getent group sudo

Salida de ejemplo

sudo:x:27:user1,user2
  • sudo:x:27: → Información del grupo
  • user1,user2 → Usuarios pertenecientes al grupo sudo

6.1.2 Mostrar usuarios con capacidad de iniciar sesión

El archivo /etc/passwd incluye cuentas del sistema. Para extraer solo los usuarios que pueden iniciar sesión:

grep '/bin/bash' /etc/passwd

Salida de ejemplo

user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
  • Solo los usuarios con shells como /bin/bash o /bin/sh se incluyen
  • Las cuentas del sistema que usan /usr/sbin/nologin o /bin/false se excluyen

6.1.3 Mostrar usuarios del sistema (cuentas sin inicio de sesión)

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

Salida de ejemplo

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

Esto ayuda a los administradores a identificar cuentas que no deben eliminarse accidentalmente.

6.2 Limpiar periódicamente usuarios sin uso

6.2.1 Mostrar la última hora de inicio de sesión de todos los usuarios

lastlog

Salida de ejemplo

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
  • Nunca ha iniciado sesión → El usuario nunca ha iniciado sesión
    sudo deluser user2 --remove-home
    

6.2.2 Verificar el último cambio de contraseña

sudo chage -l user1
sudo passwd --expire user1

La próxima vez que el usuario inicie sesión, se requerirá restablecer la contraseña por razones de seguridad.

6.3 Verificar usuarios conectados vía SSH

who | grep pts

Salida de ejemplo

user1    pts/0        192.168.1.10     11:30

Esto ayuda a identificar usuarios remotos y sus direcciones IP.

6.4 Exportar toda la información de usuarios a CSV

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

Ejemplo users.csv

root,0,0,/root
user1,1001,1001,/home/user1
user2,1002,1002,/home/user2
  • Exporta nombre de usuario, UID, GID y directorio home
  • Los datos pueden analizarse con Excel o hojas de cálculo

7. Preguntas frecuentes

7.1 ¿Puedo editar /etc/passwd directamente?

Respuesta: Editar directamente no se recomienda. Modificaciones incorrectas pueden impedir el inicio de sesión o dañar el sistema.

Método más seguro:

sudo vipw

7.2 Diferencia entre los comandos who y users

CommandDescription
whoDisplays detailed login information
usersDisplays only usernames of logged-in users

7.3 Cómo comprobar el historial de inicio de sesión de un usuario específico

last user1

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

sudo passwd user1

7.5 Cómo desactivar temporalmente a un usuario

sudo usermod -L user1
sudo usermod -U user1

7.6 Añadir un usuario al grupo sudo

sudo usermod -aG sudo user1

7.7 Cambiar el directorio home de un usuario

sudo usermod -d /new/home/path -m user1

7.8 Eliminar completamente un usuario y sus datos

sudo deluser --remove-home user1

or

sudo userdel -r user1

7.9 Ver actividad detallada de los usuarios conectados

w
  • Usuarios conectados
  • Direcciones IP remotas
  • Procesos actuales
  • Carga del sistema

Esto permite a los administradores monitorear el uso y detectar accesos no autorizados.

年収訴求