Cómo almacena y administra Linux las contraseñas de usuario

¿Se ha preguntado cómo gestiona Linux de manera eficiente un entorno multiusuario? En este artículo explicamos cómo Linux almacena y administra las contraseñas y los inicios de sesión de los usuarios.

Explorando el archivo / etc / passwd

Cuando un usuario ingresa un nombre de usuario y una contraseña, Linux compara la contraseña ingresada con una entrada en varios archivos en el directorio “/ etc”.

El “/ etc / passwd” es uno de los archivos más importantes que almacena los detalles del usuario.

La última entrada de este archivo corresponde a los usuarios de «carbono». Hay varios campos de información separados por dos puntos (:).

  • carbon : nombre del usuario al que corresponde esta entrada.
  • x : indica que existe una contraseña para el usuario. Sin embargo, la contraseña se almacena en el archivo “/ etc / shadow”. Si en lugar de x muestra un ! símbolo, esto indica que no existe una contraseña.
  • 1000 : ID de usuario de este usuario.
  • 1000: ID de grupo del grupo al que pertenece este usuario.
  • carbon, , , : indica varios campos de información, incluidos el nombre completo y los números de teléfono. Aquí, no se han proporcionado números de teléfono.
  • /home/carbon : ubicación del directorio de inicio asignado a este usuario.
  • /bin/bash : shell predeterminado asignado a este usuario.

Creemos otro usuario para el que se hayan almacenado algunos números de teléfono. El usuario «pluto» se agrega al sistema usando el adduser mando.

campo GECOS de usuario de linux

Mirando el archivo «etc / passwd» nuevamente, podemos ver la información completa para el usuario «pluto». El campo que tiene una lista separada por comas de nombres completos y números se denomina «campo GECOS».

mostrar / etc / passwd con los detalles del teléfono

Siempre que se crea un usuario, los valores del directorio de inicio y del shell predeterminado que deben asignarse se especifican en el archivo “/etc/adduser.conf”.

adduser.conf

Las ID de usuario para los usuarios creados comienzan desde 1000 y se ejecutan hasta 59999.

El usuario «carbon» pudo ver las entradas del archivo «/ etc / passwd» simplemente usando el cat mando. Echemos un vistazo a sus permisos.

Permiso del archivo / etc / passwd

Solo el usuario «root» puede escribir en el archivo. Otros usuarios solo pueden leer el archivo. Dado que este archivo es legible por todos, no es ideal almacenar contraseñas aquí. En su lugar, se almacena en otro archivo llamado «/ etc / shadow».

Explorando el archivo / etc / shadow

Ahora intentemos ver la contraseña almacenada para los usuarios «carbon» y «pluto» en el archivo «/ etc / shadow».

/ etc / shadow permiso denegado

Echando un vistazo a los permisos para el archivo “/ etc / shadow”, podemos ver que solo el usuario “root” puede leer y escribir en el archivo. Además, solo los miembros del grupo «sombra» pueden leer el archivo. En realidad, el grupo «sombra» está vacío pero es necesario sintácticamente para este archivo.

En relación :  Pepitas de oro de Minecraft: ¡Cómo hacer, usos y más!
Permiso de archivo / etc / shadow

Al iniciar sesión como «root», podemos ver las últimas diez líneas de «/ etc / shadow». Para cada entrada en «/ etc / passwd», hay una entrada correspondiente en este archivo. El formato será así:

mostrar entradas de / etc / shadow

También en este archivo, cada entrada tiene varios campos separados por dos puntos (:). Descifremos la entrada para el usuario «plutón».

  • pluto : nombre del usuario al que corresponde esta entrada.
  • $6$JvWfZ9u.$yGFIqOJ.... : La contraseña de usuario con hash almacenada junto con la información sobre el algoritmo de hash utilizado. Además, se utiliza un valor de sal junto con la contraseña de texto sin formato para generar el hash de la contraseña.

Procesemos el contenido en este campo. los $ El símbolo se utiliza como delimitador para separar tres campos.

  • $6 : el algoritmo hash utilizado. Aquí está la lista de posibles algoritmos hash.
    • $ 1: MD5
    • $ 2a: pez globo
    • $ 2 años: Eksblowfish
    • $ 5: SHA-256
    • $ 6: SHA-512
  • $JvWfZ9u. : valor de sal.
  • $yGFIqOJ.... : contraseña hash.

El valor hash resultante se almacena como la contraseña cifrada para un usuario. El valor de la sal es único para cada usuario. Incluso si dos usuarios tienen la misma contraseña de texto sin formato, el uso de una sal única generaría un valor hash único.

Siguiendo con los campos restantes en esta entrada,

  • 18283: Indica el número de días desde el 1 de enero de 1970 que se cambió por última vez la contraseña
  • : este campo se utiliza para indicar el número de días después de los cuales se puede cambiar la contraseña. Un valor de 0 significa que la contraseña se puede cambiar en cualquier momento.
  • 99999 : este campo indica el número de días después de los cuales se debe cambiar la contraseña. Un valor de 99999 indica que un usuario puede retener la contraseña todo el tiempo que desee.
  • 7 : si la contraseña está configurada para caducar, este campo indica la cantidad de días para advertir al usuario sobre la caducidad de la contraseña.
  • : : : Tres campos más forman parte de esta entrada, aunque aquí están vacíos. El primero indica el número de días de espera después de la expiración de la contraseña, después de lo cual la cuenta se desactivará. El segundo indica el número de días desde el 1 de enero de 1970 que una cuenta ha sido deshabilitada. El tercer campo está reservado para uso futuro. Los campos vacíos indican que la contraseña existente para este usuario no ha caducado y no está configurada para caducar pronto.
En relación :  Cómo instalar Open Broadcaster (OBS) en Ubuntu

Se dice colectivamente que los últimos siete campos relacionados con la validez de la contraseña contienen información sobre la «Política de antigüedad de la contraseña».

Los valores predeterminados correspondientes a la “Política de caducidad de contraseñas” se especifican en el archivo “/etc/login.defs”. Estos valores pueden modificarse para un usuario que utilice el change mando.

login.defs

¿Qué pasa con la información de grupo?

La información del usuario y las contraseñas se almacenan en los archivos “/ etc / passwd” y “/ etc / shadow”. Asimismo, la información del grupo se almacena en el archivo “/ etc / group”.

mostrar entradas de / etc / group

Arriba se destacan los grupos que pertenecen a los usuarios «carbono» y «plutón». Cuando se crea un usuario en Linux, ese usuario se asigna inmediatamente a un grupo con el mismo nombre que el nombre de usuario.

Los miembros de un grupo también pueden compartir una contraseña de grupo para actividades relacionadas con el grupo. El valor de x indica que la información de la contraseña para ese grupo estaría en el archivo “/ etc / gshadow”.

Sin embargo, el acceso a “/ etc / gshadow” está restringido al usuario “root”.

/ etc / gshadow permiso denegado

El usuario «root» puede ver las entradas de «/ etc / gshadow», que es similar a «/ etc / shadow». Al observar la entrada del grupo «carbono», podemos ver que el segundo campo tiene un valor de !, que indica que no existe una contraseña para este grupo.

Contraseña 11

Poniendolo todo junto

Cuando un usuario desea iniciar sesión, el hash de la contraseña escrita se encuentra usando el valor de sal de ese usuario en «/ etc / shadow». Luego se compara con el hash almacenado. Si los valores coinciden, se concede acceso al usuario.

  • Cómo restablecer la contraseña de root en Linux
  • Cómo administrar su contraseña de usuario desde la terminal en Linux

Moyens Staff
Moyens I/O Staff te ha motivado, brindándote asesoría en tecnología, desarrollo personal, estilo de vida y estrategias que te ayudarán.