/etc/shadow
100%

Gestión de Usuarios · Lección 4

/etc/shadow

Aprende cómo los registros shadow locales representan hashes de contraseñas y políticas de caducidad sin exponer datos sensibles.

/etc/shadow almacena campos locales protegidos de hashes de contraseñas y caducidad. Separar estos valores de la base de datos /etc/passwd, que suele ser legible, reduce la exposición a ataques de adivinación de contraseñas sin conexión.

Proteger los datos shadow

Las contraseñas no se almacenan «cifradas» de forma reversible para mostrarlas posteriormente. Una entrada local de contraseña suele contener un hash unidireccional codificado con un identificador de algoritmo, un salt y parámetros. Un atacante que obtiene hashes puede probar contraseñas candidatas sin conexión, por lo que la base de datos debe permanecer restringida.

Los detalles exactos de propiedad y permisos varían, pero el acceso suele limitarse a root y a componentes del sistema estrictamente autorizados. No imprimas, copies, registres ni compartas el contenido de shadow únicamente para consultar el estado de una cuenta.

¿Por qué se protegen normalmente los datos shadow locales frente al acceso general de lectura?

Leer el formato de nueve campos

Un registro shadow local contiene nueve campos separados por dos puntos. Este es un registro esquemático con el hash omitido deliberadamente:

alice:<password-field>:20000:0:90:7:14:20500:

Los campos son:

  1. Nombre de inicio de sesión.
  2. Hash de contraseña o marcador especial de contraseña.
  3. Último cambio de contraseña, en días desde 1970-01-01; 0 solicita un cambio en el siguiente inicio de sesión autenticado mediante contraseña con las herramientas habituales.
  4. Antigüedad mínima de la contraseña, en días.
  5. Antigüedad máxima de la contraseña, en días.
  6. Período de advertencia anterior a la caducidad de la contraseña, en días.
  7. Período de inactividad posterior a la caducidad de la contraseña, en días.
  8. Fecha de caducidad de la cuenta, en días desde 1970-01-01.
  9. Campo reservado.

Los campos vacíos y los valores numéricos especiales tienen significados definidos que pueden variar según el campo y las herramientas. Usa órdenes de gestión de cuentas en vez de editar valores a simple vista.

¿Qué campo de shadow almacena la fecha de caducidad de la cuenta como días desde 1970-01-01?

Interpretar con cuidado el campo de contraseña

Un hash válido en el campo 2 permite verificar una contraseña Unix local. Un valor que comienza por ! suele bloquear ese hash, mientras que * u otro marcador de hash no válido impide verificar correctamente una contraseña a través de ese campo. Un valor vacío es sensible para la seguridad y puede permitir un comportamiento sin contraseña según la política PAM.

Estos marcadores describen la vía de contraseña local, no todos los métodos de autenticación posibles. Las claves públicas SSH, los certificados, los tokens y las credenciales específicas de aplicaciones pueden seguir funcionando si no se restringen por separado. La caducidad de la cuenta en el campo 8 también es distinta del bloqueo de la contraseña.

¿Qué puedes concluir con seguridad de un campo de contraseña shadow que comienza por !?

Distinguir las fechas de contraseña y cuenta

Los campos 3 a 7 se refieren a la caducidad de la contraseña: cuándo cambió por última vez, cuándo se permite otro cambio, cuándo caduca, cuándo comienzan las advertencias y durante cuánto tiempo sigue disponible el inicio mediante contraseña después de la caducidad. El campo 8 hace caducar la cuenta en un día absoluto, con independencia de la antigüedad de la contraseña.

Por ejemplo, una antigüedad máxima de 90 días no equivale a una fecha de caducidad de la cuenta. La primera se desplaza con respecto al último cambio de contraseña; la segunda permanece fija hasta que un administrador la modifica.

¿Cuál es la diferencia entre los campos 5 y 8 de shadow?

Consultar y cambiar la política mediante herramientas

Los administradores deben consultar únicamente la información necesaria para la tarea:

$ sudo passwd -S alice
$ sudo chage -l alice

passwd -S resume el estado de la contraseña local, mientras que chage -l enumera la información de caducidad en un formato legible. Los formatos de salida y los requisitos de autorización pueden variar según la distribución.

Usa passwd, chage, usermod y herramientas relacionadas para efectuar cambios. Si es inevitable reparar manualmente la base de datos shadow local, vipw -s proporciona bloqueo; valida las bases de datos de cuentas con pwck. Mantén una sesión de recuperación antes de realizar cambios remotos de autenticación.

¿Qué orden está diseñada para mostrar información legible de caducidad de la contraseña de la cuenta local alice?

PAM y NSS pueden integrar orígenes de autenticación e identidad ajenos a los archivos shadow locales. Por tanto, una cuenta del sistema puede no tener un registro shadow local o puede autenticarse mediante servicios adicionales.

Para practicar el estado de cuentas y las políticas de caducidad en un entorno controlado, prueba estos laboratorios prácticos:

  1. Gestionar cuentas de usuario de Linux con useradd, usermod y userdel - Practica todo el ciclo de administración, desde crear y proteger cuentas con useradd y passwd hasta modificarlas y eliminarlas.
  2. Configurar cuentas de usuario y privilegios sudo en Linux - Aprende técnicas esenciales para gestionar cuentas y privilegios sudo, incluidas las políticas de contraseñas y la protección de cuentas.

Lección completada

Has completado /etc/shadow

Ahora puedes interpretar la política shadow sin exponer toda la base de datos de contraseñas.

  • Trata los hashes de contraseñas como material de autenticación restringido.

  • Lee los nueve campos de shadow según su propósito.

  • Distingue el bloqueo de contraseñas de la desactivación de todos los métodos de inicio de sesión.

  • Separa la caducidad de contraseñas de la fecha absoluta de caducidad de la cuenta.

  • Consulta y cambia la política mediante herramientas de cuentas específicas.

Guarda tu progreso

Crea una cuenta gratuita para guardar esta lección y continuar en cualquier dispositivo.

Crear una cuenta gratuita
Siguiente Lección
Volver a Gestión de Usuarios