¿Dónde se almacenan todas las contraseñas de Linux?

Popular:
¡MEJORA LA CONFIGURACIÓN DE TU SERVIDOR! APLICAR AVA Y LANZA CON UN 15% DE DESCUENTO
USA EL CÓDIGO PROMOCIONAL:

En sistemas Linux, las contraseñas de usuario se almacenan de forma segura mediante formatos cifrados dentro de archivos del sistema y bases de datos de autenticación dedicados. Estas credenciales desempeñan un papel fundamental en la gestión del control de acceso y en garantizar que solo los usuarios autorizados puedan interactuar con los recursos del sistema. Por ejemplo, las contraseñas de usuario estándar normalmente se hashean y se guardan en el archivo /etc/shadow, al que solo pueden acceder procesos privilegiados. Del mismo modo, servicios como OpenSSH dependen de estos hashes almacenados para verificar las identidades de los usuarios durante las sesiones de inicio de sesión remoto.

Para los proveedores de hosting como AvaHost, entender cómo y dónde Linux almacena estas credenciales es esencial para mantener entornos seguros en VPS y dedicated servers. Tanto si estás configurando políticas de passwd para varios clientes como si estás aplicando acceso seguro mediante sshd_config, el manejo adecuado del almacenamiento de contraseñas es clave para prevenir accesos no autorizados y proteger los datos alojados.

1. El archivo /etc/passwd (Información del usuario)

El archivo /etc/passwd contiene una lista de todos los usuarios del sistema, junto con detalles básicos de la cuenta.

Ejemplo de entrada en /etc/passwd:

username:x:1001:1001:User Name:/home/username:/bin/bash

Campos explicados:

  • username: El nombre de inicio de sesión del usuario.
  • x: Marcador de posición que indica que la contraseña se almacena en un archivo separado.
  • 1001:1001: ID de usuario (UID) e ID de grupo (GID).
  • User Name: Nombre completo o descripción del usuario.
  • /home/username: El directorio personal del usuario.
  • /bin/bash: La shell predeterminada asignada al usuario.

2. El archivo /etc/shadow (Contraseñas cifradas)

Linux almacena los hashes reales de las contraseñas en el archivo /etc/shadow, al que solo puede acceder el usuario root.

Ejemplo de entrada en /etc/shadow:

username:$6$abc123$XYZhashedpassword:18528:0:99999:7:::

Campos explicados:

  • $6$: Indica el algoritmo de cifrado (SHA-512 en este caso).
  • abc123: Salt usado para hashear la contraseña.
  • XYZhashedpassword: La contraseña hasheada real.
  • 18528: Fecha desde el último cambio de contraseña.
  • 0:99999:7: Información de caducidad de la contraseña (validez mínima y máxima de la contraseña).

Comprobación del algoritmo de hash de la contraseña:

Para ver el algoritmo de hash utilizado, ejecuta:

cat /etc/shadow | grep username

3. El archivo /etc/group (Información de grupos)

El archivo /etc/group contiene información sobre los grupos de usuarios y las pertenencias a grupos.

Ejemplo de entrada en /etc/group:

developers:x:1002:username1,username2

4. El directorio /var/lib/AccountsService/ (Cuentas de usuario GUI)

Algunas distribuciones Linux almacenan las preferencias de las cuentas de usuario para inicios de sesión GUI en:

/var/lib/AccountsService/users/

Estos archivos contienen metadatos como nombres para mostrar y preferencias de sesión, pero no almacenan contraseñas.

5. Comandos de gestión de contraseñas

Cambiar la contraseña de usuario:

passwd username

Ver información de caducidad de la contraseña:

chage -l username

Forzar a los usuarios a cambiar la contraseña en el siguiente inicio de sesión:

passwd --expire username

6. Cómo Linux protege las contraseñas

  • Hashing y salting: Las contraseñas nunca se almacenan en texto plano. En su lugar, se hashean y se les añade salt para evitar su recuperación directa.
  • Acceso solo para root: Archivos como /etc/shadow están restringidos únicamente al acceso root.
  • Pluggable Authentication Modules (PAM): La autenticación en Linux es gestionada por PAM, que aplica políticas de seguridad de contraseñas.

Conclusión

Linux almacena de forma segura las credenciales de usuario en archivos del sistema como /etc/passwd y /etc/shadow, garantizando acceso cifrado y restringido. Comprender estos mecanismos de almacenamiento es esencial para la seguridad del sistema y la gestión de usuarios.