¿Qué es el archivo Linux / etc / shadow y qué hace?

Buscando en los archivos de su sistema Linux, es posible que haya encontrado un archivo en el directorio / etc llamado shadow . Puede sonar espeluznante, pero en realidad es un archivo seguro, necesario y útil para la administración del sistema.

Hoy veremos más de cerca el contenido del archivo / etc / shadow y lo que puede decirle sobre su sistema.

¿Qué es / etc / shadow?

Por misterioso que parezca, la función del archivo es bastante sencilla. El archivo / etc / shadow contiene información sobre los usuarios de un sistema Linux, sus contraseñas y las regulaciones de tiempo para sus contraseñas.

Cuando crea o cambia una contraseña en Linux , el sistema realiza un hash y la almacena en el archivo de sombra. Las reglas de contraseña asignadas por el administrador, como las fechas de vencimiento y los períodos de inactividad, también permanecerán aquí. El archivo de sombra puede decirle a los protocolos de autenticación si la contraseña de un usuario es correcta, por ejemplo, o cuándo ha expirado.

Nunca debe editar el archivo de sombra directamente. Se mantiene mediante procesos automatizados y no está diseñado para que lo modifiquen los usuarios habituales. No obstante, la información que contiene puede ser valiosa para usted, por lo que vale la pena echarle un vistazo.

¿Qué hay en el archivo de sombra de Linux?

Para ver el contenido del archivo de sombra, abra una terminal y emita el comando cat en ella:

 sudo cat /etc/shadow

Verás un mensaje que te pedirá tu contraseña. Suponiendo que tiene permisos administrativos, verá una impresión de cadenas de texto que se parecen a esto (las elipses marcan donde se recortó la cadena para ajustarse a su pantalla):

 muo1:$6$IK2...$20a...:18731:0:99999:7:::

Parece críptico y, de hecho, parte de él es texto encriptado. La cadena sigue una construcción particular, sin embargo, y los bits de casas específicos de información, delineados por el colon: Carácter ().

Aquí hay un diseño completo de la cadena:

 [username]:[password]:[date of last password change]:[minimum password age]:[maximum password age]:[warning period]:[inactivity period]:[expiration date]:[unused]

Echemos un vistazo más de cerca a cada uno de estos campos:

1. Nombre de usuario

Todo lo que sigue en la cadena está asociado con este nombre de usuario.

2. Contraseña

El campo de contraseña consta de tres campos adicionales, delimitados por signos de dólar: $ id $ salt $ hash .

  • id: Esto define el algoritmo de cifrado utilizado para cifrar su contraseña. Los valores pueden ser 1 (MD5), 2a (Blowfish), 2y (Eksblowfish), 5 (SHA-256) o 6 (SHA-512).
  • salt: esta es la sal utilizada para cifrar y autenticar la contraseña.
  • hash: esta es la contraseña del usuario tal como aparece después del hash. El archivo de sombra mantiene una versión hash de su contraseña para que el sistema pueda verificar cualquier intento de ingresar su contraseña.

Más información: Definición de términos básicos de cifrado

A veces, el campo de contraseña contiene solo un asterisco ( * ) o un signo de exclamación ( ! ). Eso significa que el sistema ha desactivado la cuenta del usuario, o el usuario debe autenticarse a través de otros medios que no sean una contraseña. Este suele ser el caso de los procesos del sistema (también conocidos como pseudo-usuarios) que probablemente también encontrará en el archivo de sombra.

3. Fecha del último cambio de contraseña

Aquí encontrará la última vez que este usuario cambió su contraseña. Tenga en cuenta que el sistema muestra la fecha en formato de hora Unix .

4. Antigüedad mínima de la contraseña

Aquí encontrará la cantidad de días que el usuario debe esperar después de cambiar su contraseña antes de volver a cambiarla.

Si no se establece el mínimo, el valor aquí será 0.

5. Antigüedad máxima de la contraseña

Esto define cuánto tiempo puede pasar un usuario sin cambiar su contraseña. Cambiar con frecuencia su contraseña tiene sus ventajas , pero de forma predeterminada, el valor se establecerá en unos generosos 99,999 días. Eso es cerca de 275 años.

6. Período de advertencia

Este campo determina el número de días antes de que una contraseña alcance su antigüedad máxima, durante los cuales el usuario recibirá recordatorios para cambiar su contraseña.

7. Período de inactividad

Este es el número de días que pueden pasar después de que la contraseña del usuario haya alcanzado su antigüedad máxima antes de que el sistema desactive la cuenta. Piense en esto como un "período de gracia" durante el cual el usuario tiene una segunda oportunidad de cambiar su contraseña, aunque técnicamente esté vencida.

8. Fecha de vencimiento

Esta fecha es el final del período de inactividad cuando el sistema deshabilitará automáticamente la cuenta del usuario. Una vez deshabilitado, el usuario no podrá iniciar sesión hasta que un administrador lo habilite nuevamente.

Este campo estará vacío si no se configura, y si se configura, la fecha aparecerá en tiempo de época.

9. Sin usar

Este campo actualmente no tiene ningún propósito y está reservado para un posible uso futuro.

Explicación del archivo de sombra

El archivo de sombra realmente no es misterioso en absoluto. Sin embargo, recuerde que si desea cambiar las contraseñas y las reglas de contraseñas, debe evitar editar el archivo de sombra directamente y en su lugar optar por utilizar herramientas designadas para ese propósito.

Siempre que agrega un nuevo usuario a su sistema Linux, el archivo / etc / shadow se modifica automáticamente para almacenar la información de autenticación sobre el usuario.