La guía completa del archivo /etc/shadow para Linux

El archivo shadow y el archivo passwd se usan comúnmente para realizar procesos de autenticación en Linux. El archivo Shadow es un archivo basado en texto que almacena datos de usuarios en un sistema. Lo que es más importante, las contraseñas aquí se guardan en forma cifrada o en formato hash.

Almacenar contraseñas dentro del archivo /etc/passwd es propenso a la inseguridad del sistema. Los permisos de archivo para el archivo Shadow se establecen en 640 o 400.

¿Qué cubriremos?

En este artículo, exploraremos el archivo Shadow en Linux.

¿Por qué necesitamos el archivo Shadow?

El archivo passwd en Linux es legible para todos y, por esta razón, las contraseñas cifradas se han transferido a un archivo diferente llamado archivo shadow. Solo es legible por root. El archivo shadow también se encuentra dentro de la carpeta /etc en /etc/shadow.

Al igual que el archivo passwd, el primer campo del archivo shadow contiene el nombre de la cuenta y usa dos puntos para separar los diferentes campos. Tener un archivo separado que contenga contraseñas encriptadas también facilita agregar nuevos parámetros para una cuenta. Además, esto ayuda a controlar una cuenta y también controla el envejecimiento de la contraseña.

El archivo shadow se mantiene protegido contra lectura para proteger las contraseñas cifradas. Esta es una medida de seguridad importante porque cualquiera que tenga acceso de lectura al archivo puede intentar descifrar la contraseña cifrada.

Aspectos de seguridad del archivo sombra

El archivo shadow es una buena herramienta para restablecer la contraseña de root de un sistema Linux. Podemos ubicar la entrada de la cuenta para el usuario root y manipular algunas configuraciones para recuperar nuestra contraseña de root. Sin embargo, el proceso de recuperación de contraseñas del archivo Shadow está fuera de tema por ahora.

Como se mencionó anteriormente, el archivo shadow solo puede ser leído por la raíz. Si el titular de una cuenta malintencionada intenta piratear las otras cuentas del sistema, simplemente se golpeará la cabeza contra la pared. Si de alguna manera, una persona obtiene acceso a la contraseña, el tiempo para descifrarla depende del algoritmo de encriptación utilizado. Aunque eso no es tan fácil, ya que puede llevar de unos minutos a años descifrar una contraseña cifrada.

Sintaxis del archivo Shadow

La sintaxis del archivo shadow es la siguiente:

inicio de sesión: contraseña cifrada: fecha del último cambio: edad mínima: edad máxima: advertencia: inactividad: fecha de vencimiento: reservado

Los campos en la línea de arriba están representados en días. El último cambio y la caducidad son campos de fecha. El tiempo en estos campos se toma a partir de la fecha de inicio del tiempo Unix, es decir, el 1 de enero de 1970.

Explicación de los campos en el archivo de sombra

Hay nueve campos en este archivo que están delimitados por dos puntos:’

Permítanme explicar cada campo aquí:

inicio de sesión: cada línea en un archivo Shadow comienza con un nombre de usuario. El nombre de usuario vincula las entradas en el archivo Shadow de las que se encuentran en /etc/passwd.

contraseña cifrada: es el marcador de posición de la contraseña cifrada. Entonces, obviamente, no hay parecido con la contraseña real. Si un * o ! se coloca aquí, esto significa que la cuenta no tiene contraseña.

fecha de último cambio: es básicamente una fecha en términos de la cantidad de días tomados desde el comienzo del tiempo de Unix. Esta es la hora que da la fecha en que se modificó por última vez la contraseña. Si este valor es 0, significa que la contraseña debe cambiarse la próxima vez que un usuario inicie sesión.

minage: este campo dice que la contraseña solo se puede cambiar cuando el valor de la fecha es minage+lastage. Si este campo está vacío, significa que la contraseña se puede modificar en cualquier momento.

maxage: este campo indica que la contraseña debe cambiarse cuando el valor de la fecha es maxage+lastage. En realidad, es la fecha en que caduca la contraseña. Para las contraseñas vacías, la fecha de caducidad no tiene sentido y, por lo tanto, no se requieren campos de máximo, advertencia e inactividad.

advertencia: esto le da una advertencia a un usuario para cambiar la contraseña cuando la fecha se convierte en último cambio + advertencia máxima o el período de advertencia de la contraseña ha comenzado. Si este valor es 0 o está en blanco (vacío), significa que no hay período de advertencia.

inactividad: cuando la contraseña ha caducado, el usuario aún puede modificar sus contraseñas hasta los días de inactividad. Si este campo no se llena, no hay período de inactividad.

fecha de caducidad: es la fecha en que caducará la cuenta de usuario. A partir de esta fecha, la cuenta no estará disponible para iniciar sesión. Si este campo está vacío, la cuenta nunca caducará. Además, no utilice un valor ‘0’ aquí.

Bandera especial: este lugar normalmente no se usa y se ha puesto para uso futuro.

Ahora tomemos un ejemplo para aclarar nuestra comprensión de los campos anteriores. Tome, por ejemplo, la siguiente entrada de muestra del archivo shadow:

linuxhint:$ 6 $kKRCC8ip8nKtFjjdZJIj : 12825 : 14 : 45 : 10 : 30 : 13096

Desglosemos cada campo paso a paso:

1. linuxhint es el nombre del usuario.

2. El siguiente campo es la contraseña cifrada del usuario. Es una contraseña larga. Sin embargo, lo hemos truncado ligeramente en aras de la brevedad.

3. El usuario ha modificado su contraseña 12825 días o 35 años, 1 mes y 11 días, que es el 11 de febrero de 2005 desde la época de Unix, es decir, el 1 de enero de 1970.

4. El tiempo mínimo a partir del cual el usuario puede cambiar su contraseña es de 14 días. Para que la contraseña se pueda cambiar en cualquier momento, establezca este campo en 0.

5. Será necesario restablecer la contraseña cada 45 días.

6. La advertencia para restablecer la contraseña aparecerá 10 días antes de la fecha de cambio.

7. Si la contraseña caduca y no se realiza ninguna acción de inicio de sesión durante 30 días, la cuenta de usuario se desactivará.

8. Después de 13096 días desde la época de Unix o el 9 de noviembre de 2005, la cuenta caducará.

Conclusión

Shadow file es un lugar muy seguro para almacenar la información de su cuenta. Existen problemas de seguridad en las contraseñas de usuario seguras dentro del archivo passwd. Hacer que el archivo Shadow sea legible por root solo elimina las posibilidades de explotación de contraseñas por parte de usuarios malintencionados y atacantes.