-
Notifications
You must be signed in to change notification settings - Fork 0
05 Gestion de Contrasenias
Mientras que el archivo /etc/passwd
contiene la información de las cuentas de los usuarios del sistema, el archivo
/etc/shadow contiene las contraseñas de las
cuentas de usuario e información opcional del envejecimiento de dichas
contraseñas. Cada entrada (línea) de este archivo está compuesta de nueve campos
separados por el delimitador :. La estructura es la siguiente:
account:password:date_of_last_password_change:min_password_age:
max_password_age:password_warning_period:password_inactivity_period:
account_expiration_date:reserved
| Campo | Descripción | Formato | Obligatorio |
|---|---|---|---|
account |
Nombre de inicio de sesión (nombre de usuario) | Standard *NIX naming rules | Sí |
password |
Contraseña cifrada o hasheada del usuario | Si el campo se encuentra vacío, el usuario puede iniciar sesión sin contraseña. Cuando se bloquea la contraseña, se le agrega un ! al principio |
No |
date_of_last_password_change |
Fecha de la última modificación de la contraseña | Número de días después de 1970-01-01 00:00:00 UTC. El valor cero indica que el usuario debe modificar la contraseña la próxima vez que inicie sesión. Un campo vacío significa que las funciones de password aging están deshabilitadas |
No |
min_password_age |
Envejecimiento mínimo de la contraseña | Número de días que el usuario debe esperar para cambiar su contraseña. Un valor de cero o un campo vacío significa que no hay un min_password_age
|
No |
max_password_age |
Envejecimiento máximo de la contraseña | Número de días que deben transcurrir para que el usuario deba cambiar su contraseña; se le solicitará al usuario cambiar su contraseña la próxima vez que inicie sesión. Un campo vacío significa que no hay un max_password_age. |
No |
password_warning_period |
Período de advertencia de la expiración de la contraseña | Número de días antes de que la contraseña expire (max_password_age). Cuando se llegue a este período, el usuario será alertado. Un campo vacío o un valor de cero significa que no hay password_warning_period
|
No |
password_inactivity_period |
Período de inactividad de la contraseña | Número de días después de que la contraseña expire (max_password_age), durante los cuales la contraseña aún es aceptada; el usuario debe cambiar la contraseña la próxima vez que inicie sesión. Un campo vacío o un valor de cero significa que no hay password_inactivity_period
|
No |
account_expiration_date |
Fecha de expiración de la cuenta | Fecha en la que expira la cuenta, expresada como el número de días desde 1970-01-01. Un campo vacío significa que la cuenta nunca expira. El valor cero no debe usarse debido a que es interpretado como la fecha de expiración 1970-01-01
|
No |
reserved |
Reservado para uso futuro | No |
El comando passwd permite crear y actualizar contraseñas para una cuenta de
usuario. También permite cambiar el período de validez de la cuenta o la
contraseña asociada.
passwd [opciones] [LOGIN]| Uso | Descripción | Ejemplo |
|---|---|---|
passwd [LOGIN] |
Cambia la contraseña del usuario actual o del usuario LOGIN interactivamente |
passwdpasswd root
|
passwd -S [LOGIN] |
Obtén el status (estado) del usuario actual o del usuario LOGIN
|
passwd -Spasswd -S carmen
|
passwd -aS [LOGIN] |
Obtén el status de todos los usuarios | passwd -aS |
passwd -d LOGIN |
Remueve la contraseña del usuario LOGIN, estableciéndola como vacía |
passwd -d leo |
passwd -e LOGIN |
Expira la contraseña de una cuenta. Esto forza al usuario a cambiar su contraseña la próxima vez que inicie sesión | passwd -e javier |
passwd -i INACTIVE LOGIN |
Deshabilita la cuenta LOGIN una vez que la contraseña haya expirado y hayan transcurrido INACTIVE días |
passwd -i 180 $USER |
passwd -l LOGIN |
Bloquea la contraseña para la cuenta LOGIN. Esto no deshabilita la cuenta. El usuario podría iniciar sesión por otro token de autenticación (e.g., llave SSH) |
passwd -l alex |
passwd -u LOGIN |
Desbloquea la contraseña para la cuenta LOGIN. El usuario puede usar su contraseña previa para iniciar sesión |
passwd -u alex |
passwd -w WARN_DAYS LOGIN |
El usuario comienza a recibir warnings (alertas) al iniciar sesión cuando faltan por lo menos WARN_DAYS días para que la contraseña expire |
passwd -w 30 gaby |
passwd -n MIN_DAYS LOGIN |
Permite al usuario cambiar su contraseña a partir de MIN_DAYS días. Cuando MIN_DAYS vale cero significa que el usuario puede cambiar su contraseña en cualquier momento |
passwd -n 30 gaby |
passwd -x MAX_DAYS LOGIN |
Establece el número máximo de días en el que la contraseña del usuario se mantiene válida. Después de MAX_DAYS, se solicita cambiar la contraseña. Cuando MAX_DAYS vale -1, entonces removerá el chequeo de la validación de la contraseña |
passwd -x 180 gaby |
Note
Los comandos usermod -L LOGIN y usermod -U LOGIN son equivalentes a
passwd -l y passwd -u respectivamente.
El comando chage permite cambiar información de expiración de contraseñas para
un usuario. Establece el número entre los cambios de contraseñas y la fecha del
último cambio de contraseña. Esta información puede ser usada por el sistema
para determinar cuándo el usuario debe cambiar su contraseña.
chage [opciones] LOGIN| Uso | Descripción | Ejemplo |
|---|---|---|
chage LOGIN |
Muestra o modifica de forma interactiva la información de expiración de la contraseña del usuario LOGIN
|
chage carmen |
chage -d LAST_DAY LOGIN |
Establece la fecha en la que la contraseña fue cambiada por última vez. LAST_DAY puede ser una fecha en el formato YYYY-MM-DD o el número de días desde la fecha 1970-01-01
|
chage -d 0 gaby |
chage -E EXPIRE_DATE LOGIN |
Establece la fecha en la que la cuenta del usuario no será accesible. EXPIRE_DATE puede ser una fecha en el formato YYYY-MM-DD o el número de días desde la fecha 1970-01-01
|
chage -E 2026-12-31 javier |
chage -I INACTIVE LOGIN |
Establece el número de días (INACTIVE) de inactividad después de que una contraseña ha expirado antes de que la cuenta se bloquee |
chage -I 180 $USER |
chage -W WARN_DAYS LOGIN |
El usuario comienza a recibir warnings (alertas) al iniciar sesión cuando faltan por lo menos WARN_DAYS días para que la contraseña expire |
chage -W 30 gaby |
chage -m MIN_DAYS LOGIN |
Permite al usuario cambiar su contraseña a partir de MIN_DAYS días. Cuando MIN_DAYS vale cero significa que el usuario puede cambiar su contraseña en cualquier momento |
chage -m 30 gaby |
chage -M MAX_DAYS LOGIN |
Establece el número máximo de días en el que la contraseña del usuario se mantiene válida. Después de MAX_DAYS, se solicita cambiar la contraseña. Cuando MAX_DAYS vale -1, entonces removerá el chequeo de la validación de la contraseña |
chage -M 180 gaby |
Note
El comando usermod -e EXPIRE_DATE LOGIN es equivalente a
chage -E EXPIRE_DATE LOGIN.
Mientras que el archivo /etc/group contiene
la información de los grupos del sistema, el archivo
/etc/gshadow contiene la información
confidencial para los grupos del sistema. Cada entrada (línea) de este archivo
está compuesta de cuatro campos separados por el delimitador :. La estructura
es la siguiente:
group_name:password:administrators:members
| Campo | Descripción | Formato | Obligatorio |
|---|---|---|---|
group_name |
Nombre del grupo | Standard *NIX naming rules | Sí |
password |
Contraseña cifrada o hasheada del grupo | No | |
administrators |
Los administradores pueden cambiar la contraseña o los miembros del grupo | Lista de nombres de usuario separados por comas | No |
members |
Los miembros pueden acceder al grupo sin necesidad de una contraseña | Lista de nombres de usuario separados por comas | No |
El comando gpasswd permite crear y actualizar contraseñas para un grupo.
También permite gestionar los administradores y miembros del grupo.
gpasswd [opciones] GROUP| Uso | Descripción | Ejemplo |
|---|---|---|
gpasswd GROUP |
Cambia la contraseña del grupo GROUP interactivamente |
gpasswd developers |
gpasswd -r GROUP |
Remueve la contraseña del grupo GROUP
|
gpasswd -r developers |
gpasswd -R GROUP |
Restringe el acceso al grupo GROUP; solo los miembros del grupo pueden usar newgrp para unirse a él |
gpasswd -R developers |
gpasswd -a USER GROUP |
Agrega el usuario USER como miembro del grupo GROUP
|
gpasswd -a leo developers |
gpasswd -d USER GROUP |
Elimina al usuario USER del grupo GROUP
|
gpasswd -d leo developers |
gpasswd -A ADMIN,... GROUP |
Define la lista de administradores del grupo GROUP. Los administradores pueden cambiar la contraseña y los miembros del grupo |
gpasswd -A alex developers |
gpasswd -M USER,... GROUP |
Define la lista de miembros del grupo GROUP
|
gpasswd -M alex,leo developers |
- Ciberseguridad -- Credenciales y Contraseñas
- Arch Linux Wiki -- Users and Groups
- shadow(5)
- passwd(1)
- chage(1)
- gshadow(5)
- gpasswd(1)
-
shadow-utils. (27 de junio de 2025). SHADOW(5). https://man.archlinux.org/man/shadow.5
-
shadow-utils. (27 de junio de 2025). PASSWD(1). https://man.archlinux.org/man/passwd.1
-
shadow-utils. (27 de junio de 2025). chage(1). https://man.archlinux.org/man/chage.1
-
shadow-utils. (27 de junio de 2025). GSHADOW(5). https://man.archlinux.org/man/gshadow.5
-
shadow-utils. (27 de junio de 2025). GPASSWD(1). https://man.archlinux.org/man/gpasswd.1
- Definición y Estructura de un Shell
- Los Diferentes Tipos de Shell
- Definición y Sintaxis de un Comando
- Variables, Alias y Funciones
- Comandos de Utilidad y Consulta
- Linux como Sistema Multiusuario
- Introducción a los Usuarios y Grupos
- Gestión de Usuarios
- Gestión de Grupos
- Gestión de Contraseñas
- Búsqueda de Información de Usuarios y Grupos con
getent
- Atributos de Archivos: Propiedad y Permisos de los Archivos
- Cambio de Propiedad y Permisos
umask: Permisos Predeterminados de Archivos- Cambio de Identidad y Privilegios
- Gestión de Paquetes (Package Management)
- Compresión y Archivado de Archivos
- Optimización y Conversion de Archivos