La administración de usuarios y grupos es fundamental para la seguridad y el control de acceso en cualquier sistema Linux. En este artículo, te guiaremos a través de los comandos esenciales y las configuraciones clave para gestionar usuarios, grupos y permisos de manera efectiva. ¡Prepárate para dominar tu sistema!
Comandos Básicos para la Gestión de Usuarios
Linux ofrece una serie de comandos para crear, modificar y eliminar usuarios. Aquí te presentamos los más importantes:
useradd
: Creación de Usuarios
El comando useradd
se utiliza para crear nuevos usuarios en el sistema. Su sintaxis básica es:
# useradd nombre_de_usuario
Por ejemplo, para crear un usuario llamado ‘juan’, ejecutarías:
# useradd juan
También puedes especificar opciones como la creación de la carpeta personal con -m
:
# useradd -m luisgulo
La sintaxis avanzada permite definir la shell, los grupos, la carpeta personalizada o un UID específico:
# useradd -m -s /bin/bash -G sudo luisgulo
# useradd -d /srv/usuarios/julio julio
# useradd -u 1501 pedro
passwd
: Gestión de Contraseñas
El comando passwd
se utiliza para asignar o cambiar la contraseña de un usuario:
# passwd nombre_de_usuario
Por ejemplo, para cambiar la contraseña del usuario ‘luisgulo’, ejecutarías:
# passwd luisgulo
También puedes bloquear un usuario o forzar el cambio de contraseña en el próximo inicio de sesión:
# passwd -l luisgulo # Bloquear usuario
# passwd -e juan # Forzar cambio de contraseña
usermod
: Modificación de Usuarios
El comando usermod
permite modificar las propiedades de un usuario existente. Por ejemplo, para añadir un usuario a un grupo:
# usermod -aG audio luisgulo # Añadir usuario a grupo 'audio'
# usermod -s /bin/zsh luisgulo # Cambiar shell a zsh
También puedes mover la carpeta personal, cambiar el UID o redefinir el grupo principal:
# usermod -d /mnt/perfiles/luisgulo -m luisgulo
# usermod -u 2001 luisgulo
# usermod -g admin luisgulo
deluser
/ userdel
: Eliminación de Usuarios
Para eliminar un usuario del sistema, utiliza el comando userdel
:
# userdel nombre_de_usuario
Por ejemplo:
# userdel juan
Para eliminar también la carpeta personal del usuario, usa la opción -r
:
# userdel -r pedro # Elimina usuario y su home
O, si utilizas `deluser`:
# deluser luisgulo sudo # Elimina usuario de un grupo
Gestión de Grupos
Los grupos permiten agrupar usuarios para facilitar la administración de permisos. Aquí tienes los comandos clave:
groupadd
/ groupmod
/ groupdel
Estos comandos se utilizan para gestionar grupos:
groupadd
: Crea un nuevo grupo.groupmod
: Modifica un grupo existente (por ejemplo, su nombre).groupdel
: Elimina un grupo.
# groupadd desarrolladores
# groupmod -n devs desarrolladores # Cambia nombre de grupo
# groupdel testers
También puedes especificar un GID específico:
# groupadd -g 1050 auditores
# usermod -G sudo,auditores luisgulo
id
/ groups
/ whoami
: Consultar Información
Estos comandos te permiten consultar información sobre usuarios y grupos:
id
: Muestra información sobre el usuario actual.groups
: Muestra los grupos a los que pertenece un usuario.whoami
: Muestra el nombre del usuario actual.
$ id
$ groups luisgulo
$ whoami
En scripts, puedes usarlos para verificar permisos o filtrar por UID:
$ id -u
$ id -Gn | grep admins
Control Avanzado de Contraseñas con chage
El comando chage
permite controlar la vigencia de las contraseñas y las políticas de caducidad para cada usuario. Para ver la información de caducidad actual:
# chage -l luisgulo
Puedes forzar cambios, establecer fechas de expiración o modificar ciclos de cambio obligatorio:
# chage -E 2025-12-31 luisgulo # Expira la cuenta en esa fecha
# chage -M 90 luisgulo # Máximo de 90 días antes de cambiar contraseña
# chage -d 0 luisgulo # Forzar cambio al próximo inicio de sesión
Sesiones Activas con loginctl
En sistemas con systemd
, el comando loginctl
permite consultar las sesiones activas de los usuarios. Para ver las sesiones activas:
$ loginctl list-users
$ loginctl list-sessions
Puedes inspeccionar detalles de una sesión, controlar permisos y habilitar servicios persistentes:
$ loginctl show-user luisgulo
$ loginctl session-status <ID>
# loginctl enable-linger luisgulo # Permite servicios sin sesión gráfica
Bloqueo por Intentos Fallidos con faillog
El comando faillog
muestra y gestiona los bloqueos por múltiples intentos fallidos de inicio de sesión. Para consultar los registros por usuario:
# faillog -u luisgulo
# faillog -a # Muestra todos los usuarios
Puedes bloquear cuentas después de intentos fallidos o eliminar registros:
# faillog -m 3 -t 900 -u luisgulo # Bloquea tras 3 intentos en 15 min
# faillog -r -u luisgulo # Reinicia el contador
Importante: Requiere tener pam_tally
o pam_faillock
habilitados en tu archivo de PAM.
Integración de faillog
con login.defs
El archivo /etc/login.defs
define parámetros globales relacionados con el comportamiento de usuarios, contraseñas y sesiones. Ejemplos relevantes:
FAILLOG_ENAB yes # Habilita registro de fallos
FAIL_MAX 3 # Máximo intentos antes de bloquear
FAIL_MIN 600 # Tiempo mínimo entre bloqueos (segundos)
LOGIN_RETRIES 5 # Intentos permitidos antes de desconexión
LOGIN_TIMEOUT 60 # Tiempo para credenciales antes de cancelar
PASS_MAX_DAYS 90 # Vida útil máxima de contraseña
PASS_MIN_DAYS 0 # Días mínimos antes de permitir cambio
PASS_WARN_AGE 7 # Aviso de caducidad anticipado
Cuando estas políticas están activadas, el sistema registra los intentos erróneos en /var/log/faillog
. Puedes gestionarlos con:
# faillog -u luisgulo
# faillog -r -u luisgulo # Reinicia contador
# faillog -m 3 -t 900 -u luisgulo # 3 fallos → bloqueo 15 minutos
El sistema se apoya en estas configuraciones, siempre que estén acompañadas por módulos PAM.
Autenticación con Huella Dactilar
En sistemas Linux modernos, puedes configurar un lector de huellas digitales para iniciar sesión, ejecutar comandos con sudo
, desbloquear la pantalla o iniciar sesión gráfica (GDM, LightDM, etc.). Esta autenticación biométrica puede convivir con métodos tradicionales de contraseña.
Requisitos Previos
- Hardware: Lector USB o embebido reconocido por el kernel (verifica con
lsusb | grep -i fingerprint
). - Software:
- Paquete principal:
fprintd
(daemon para huellas). - Backend:
libpam-fprintd
(para integración con PAM). - Herramientas:
fprintd-enroll
,fprintd-verify
.
- Paquete principal:
En sistemas Debian/Ubuntu:
# apt install fprintd libpam-fprintd
Registrar la Huella Digital
Cada usuario debe registrar su propia huella:
$ fprintd-enroll
El sistema pedirá repetir el gesto de lectura varias veces. Para verificarla manualmente:
$ fprintd-verify
Integración en Consola (sudo, login, su)
Edita el archivo PAM correspondiente para incluir el módulo de huellas, pero conservando como método alternativo la contraseña. Ejemplo en /etc/pam.d/sudo
:
auth sufficient pam_fprintd.so
auth required pam_unix.so
sufficient
: Si la huella es válida, permite acceso. required
: Si la huella falla, solicita contraseña.
También puedes configurar en:
/etc/pam.d/login
→ para consola/etc/pam.d/su
→ para cambios de usuario
Integración en Entorno Gráfico
Los principales gestores de sesión como GDM (GNOME), SDDM (KDE) y LightDM pueden usar PAM para autenticación biométrica. Ejemplo para GDM:
Edita /etc/pam.d/gdm-password
:
auth sufficient pam_fprintd.so
auth required pam_unix.so
Esto permitirá desbloquear la sesión con huella digital, pero solicitará contraseña si hay error o no se detecta el lector.
Comportamiento ante Errores
Si el lector falla, el módulo pam_fprintd.so
puede configurarse para registrar fallos, aplicar retrasos o mostrar mensajes. El sistema seguirá con pam_unix.so
como respaldo. Algunas opciones avanzadas:
auth sufficient pam_fprintd.so timeout=10 retry=3
timeout
: segundos máximos para lectura.retry
: número de intentos de huella antes de pasar a contraseña.
Configuración PAM para Autenticación Biométrica con Respaldo
Los siguientes ejemplos deben aplicarse cuidadosamente, siempre realizando pruebas en sesiones separadas o TTY paralelas. Se recomienda conservar métodos clásicos en todos los casos.
1. /etc/pam.d/login
Aplicación: Inicio de sesión por consola (tty o login directo)
auth sufficient pam_fprintd.so
auth required pam_unix.so
account required pam_unix.so
password required pam_unix.so
session required pam_unix.so
session optional pam_lastlog.so
pam_fprintd.so
: Permite autenticación por huella. Si falla la lectura, pam_unix.so
solicita contraseña.
2. /etc/pam.d/sudo
Aplicación: Ejecución de comandos privilegiados con sudo
auth sufficient pam_fprintd.so
auth required pam_unix.so
account required pam_unix.so
El usuario podrá autenticar mediante huella en sudo, y si no es posible, se solicita contraseña.
3. /etc/pam.d/gdm-password
Aplicación: Inicio de sesión en entorno gráfico (GNOME Display Manager)
auth sufficient pam_fprintd.so
auth required pam_unix.so
account required pam_unix.so
password required pam_unix.so
session required pam_unix.so
session optional pam_systemd.so
Garantiza que el inicio gráfico se pueda hacer con huella. Si no es posible, el entorno ofrece entrada de contraseña. pam_systemd.so
: Inicia correctamente el entorno gráfico vinculado al usuario.
Respaldo y Restauración de Archivos PAM
Siempre pueden producirse imprevistos, con lo que debemos de disponer de un copia de seguridad de las configuraciones PAM antes de aplicar modificaciones.
Crear Respaldo
# cd /etc/pam.d/
# cp login login.bak
# cp sudo sudo.bak
# cp gdm-password gdm-password.bak
Puedes guardar estas copias en una ruta segura como /etc/pam-backup/
o tu carpeta de administrador.
Restaurar Archivos PAM
Si pierdes acceso por consola gráfica o por TTY, puedes recuperar la configuración desde una sesión root o desde un entorno de rescate:
# cp login.bak login
# cp sudo.bak sudo
# cp gdm-password.bak gdm-password
Comprobación Rápida Tras Restaurar
# pam-auth-update --force
# systemctl restart gdm # En sistemas con GNOME
Recomendaciones:
- Haz los cambios en sesiones paralelas (ejemplo: TTY2 con
Ctrl+Alt+F2
). - Verifica después de cada edición que puedas iniciar sesión normalmente.
- Mantén una cuenta alternativa con contraseña local (sin biometría).
- Evita usar editores como
nano
ovim
en remoto sin conexión persistente.
Conclusión
Dominar la gestión de usuarios y grupos en Linux es esencial para mantener un sistema seguro y eficiente. Con los comandos y configuraciones presentados en esta guía, podrás administrar usuarios, grupos, contraseñas y permisos de manera efectiva, incluyendo la autenticación biométrica. ¡Manos a la obra y que la fuerza de Linux te acompañe!
Leave a Comment