Luzablue

Tecnología y más

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

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

¿Alguna vez se ha preguntado cómo Linux maneja eficazmente un entorno multiusuario? En este artículo, explicamos cómo Linux almacena y administra las contraseñas y las credenciales de usuario.

Explorando el archivo / etc / passwd

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

«/ Etc / passwd» es uno de los archivos más importantes que almacena los detalles del usuario.

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

  • carbon : El 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 una ! símbolo, esto indica que no hay contraseña.
  • 1000 : ID de usuario de este usuario.
  • 1000: ID del grupo al que pertenece este usuario.
  • carbon, , , : Indica varios campos de información, incluido el nombre completo y los números de teléfono. Aquí no se ha proporcionado ningún número de teléfono.
  • /home/carbon : La ubicación del directorio personal asignado a este usuario.
  • /bin/bash : Shell predeterminado asignado a este usuario.

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

Control GECOS para usuarios de Linux

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

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

Cada vez que se crea un usuario, los valores del directorio raíz y del shell predeterminado que se asignará se especifican en el archivo «/etc/adduser.conf».

adduser.conf

Los ID de usuario para los usuarios creados comienzan en 1000 y se ejecutan en 59999.

El usuario «carbon» pudo ver las entradas en el archivo «/ etc / passwd» simplemente usando cat orden. 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. Debido a que este archivo es legible por cualquier persona, no es ideal almacenar contraseñas aquí. En cambio, 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

Mirando 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 sintácticamente necesario para este archivo.

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á el siguiente:

mostrar entradas de / etc / shadow

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

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

Tratemos el contenido en esta área. la $ el símbolo se utiliza como delimitador para separar tres campos.

  • $6 : 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. : el valor de la sal.
  • $yGFIqOJ.... : hashtag.

El valor hash resultante se almacena como una 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, usar un solo salto generaría un valor hash único.

Después de los campos restantes de esta entrada,

  • 18283: Indica el número de días desde el 1 de enero de 1970, cuando se cambió la contraseña por última vez.
  • 0 : este campo se utiliza para indicar el número de días después de los cuales se puede modificar 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 conservar la contraseña todo el tiempo que desee.
  • 7 : Si la contraseña está configurada para caducar, estos campos indican la cantidad de días para notificar al usuario que la contraseña ha caducado.
  • : : : Otros tres campos 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 que expire la contraseña, después de lo cual se desactivará la cuenta. El segundo indica el número de días desde el 1 de enero de 1970 que se desactivó una cuenta. 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.

Los últimos siete campos de validez de la contraseña contendrían información sobre la «Política de caducidad de la contraseña».

Los valores predeterminados para la «Política de caducidad de contraseñas» se especifican en el archivo «/etc/login.defs». Estos valores se pueden cambiar para un usuario que usa change orden.

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».

muestra entradas de / etc / group

Los grupos de usuarios «carbono» y «plutón» se destacan arriba. 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 del 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 este grupo estaría en el archivo «/ etc / gshadow».

Sin embargo, el acceso a «/ etc / gshadow» está limitado al usuario «root».

/ etc / gshadow permiso denegado

El usuario «root» puede ver las entradas «/ 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 !, lo que indica que no hay contraseña para este grupo.

Palabra 11

Ponlo todo junto

Cuando un usuario desea iniciar sesión, el hash de la contraseña ingresada 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.

En conexión con:

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

DEJA UNA RESPUESTA

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *