On i com s’emmagatzemen les contrasenyes a Linux?

Where How Are Passwords Stored Linux



El nom d'usuari amb una contrasenya corresponent per a un compte específic és el requisit principal a través del qual un usuari pot accedir a un sistema Linux. La contrasenya de tots els comptes de l'usuari es desa en un fitxer o en una base de dades de manera que es pugui verificar un usuari durant l'intent d'inici de sessió al sistema. Tots els usuaris no tenen prou habilitats i experiència per localitzar aquest fitxer al seu sistema. Tot i això, si teniu accés a la base de dades o a un fitxer que conserva totes les contrasenyes de l’usuari d’inici de sessió, podeu accedir fàcilment al sistema Linux. Quan un usuari introdueix un nom d’usuari i una contrasenya a Linux per iniciar la sessió, comprova la contrasenya introduïda amb una entrada en diversos fitxers del directori ‘/ etc’.

Els fitxers / etc / passwd conserven tota la informació important que és necessària per iniciar la sessió de l’usuari. Per explicar-ho amb paraules més senzilles, el fitxer / etc / passwd emmagatzema la informació del compte de l’usuari. Aquest fitxer és un fitxer de text pla que conté una llista completa de tots els usuaris del vostre sistema Linux. Té la informació sobre nom d'usuari, contrasenya, UID (identificador d'usuari), GID (identificador de grup), intèrpret d'ordres i directori inicial. Aquest fitxer hauria de tenir permisos de lectura, ja que s’utilitzen moltes utilitats de línia d’ordres per assignar els ID d’usuari al nom d’usuari. Però, hauria de tenir permisos d'accés d'escriptura limitats només per als comptes d'usuari root o superusuari.







En aquest article es mostrarà com i on podeu emmagatzemar les contrasenyes del compte d’usuari del sistema a la distribució de Linux. Hem implementat totes les demostracions al sistema Ubuntu 20.04. Tot i això, podeu trobar el fitxer / etc / passwd en qualsevol distribució de Linux.



Requisits previs

Hauríeu de tenir privilegis d’arrel per executar ordres administratives.



Informació bàsica sobre el fitxer / etc / passwd

El fitxer / etc / passwd conté la informació sobre el compte d'usuari del vostre sistema. Tots els camps emmagatzemats estan separats del signe dos punts:
Quan executeu l'ordre següent, veureu cada entrada de fitxer del fitxer / etc / passwd:





$gat /etc/passwd

L'ordre anterior mostrarà tots els usuaris del vostre sistema Linux.
El següent tipus de format es mostrarà a la pantalla del terminal:

Detalls sobre Format de camps / etc / passwd
De la imatge anterior:

Nom d'usuari: El camp primer representa el nom de l'usuari. La longitud del camp de nom d'usuari es defineix entre 1-32 caràcters. S'utilitza quan un usuari inicia la sessió al sistema. A l'exemple anterior, 'khuzdar' és el nom d'usuari.
Contrasenya: A l'exemple anterior, el caràcter x mostra que la contrasenya s'emmagatzema en forma xifrada al fitxer / etc / shadow.
Identificador d'usuari (UID): L’identificador d’usuari s’ha d’assignar per separat a cada usuari. El zero UID s'assigna a l'usuari root i els ID d'usuari de l'1 al 99 s'assignen a comptes estàndards o predefinits. Els altres UID de 100 a 999 s’assignen a grups o comptes administratius del sistema. A la captura de pantalla anterior, l’identificador d’usuari és 1001.
Identificador de grup (GID): El següent camp representa l'identificador del grup. El GID s'emmagatzema al fitxer / etc / group. Segons l'exemple anterior, l'usuari pertany a l'identificador de grup 1001.
Informació sobre User ID: El camp següent està destinat a comentaris. En aquest camp, podeu afegir informació addicional sobre l’usuari especificat, com ara el nom complet de l’usuari, el número de telèfon, etc. No obstant això, a l’exemple anterior, l’usuari no proporciona cap número de telèfon.
Directori d'inici: Aquest camp mostra la ubicació del directori inicial assignat a l'usuari actual. Si el directori especificat no existeix, es mostrarà /. La imatge anterior mostra la ubicació de l'usuari ressaltat al directori d'inici, que és home / kbuzdar.
Ordre // intèrpret d'ordres: El camí d'accés absolut per defecte d'un intèrpret d'ordres o ordre és / bin / bash. Això es coneix com la closca. Per exemple, sysadmin que utilitza l'intèrpret d'ordres nologin. Es comporta com un intèrpret d'ordres de reemplaçament per als comptes d'usuari del sistema. Si l'intèrpret d'ordres es troba al camí d'accés a / sbin / nologin i l'usuari vol iniciar la sessió directament al sistema Linux, l'intèrpret d'ordres / sbin / nologin tancarà o desactivarà la connexió.



Cerqueu l'usuari al fitxer / etc / passwd

Podeu cercar un usuari específic amb el fitxer / etc / passwd mitjançant l'ordre grep. Per exemple, volem cercar el nom d'usuari 'kbuzdar' des del fitxer / etc / passwd, mitjançant la sintaxi següent, i després podem cercar fàcilment un usuari especificat, estalviant el nostre temps:

$adherèncianom d'usuari/etc/passwd

La sintaxi anterior canviarà a la forma següent:

$adherènciagrinyolant/etc/passwd


O bé

$adherència -en '^ kbuzdar' /etc/passwd

Mostra els permisos al fitxer / etc / passwd

Com hem esmentat anteriorment, tots els altres usuaris, excepte root, haurien de poder llegir el permís al fitxer / etc / passwd i que el propietari ha de ser superusuari o root.
Escriviu el següent per comprovar els permisos de lectura al fitxer:

$ls -la /etc/passwd

El següent exemple de sortida es mostrarà al terminal:

S'està llegint el fitxer / etc / passwd

Podeu llegir el fitxer / etc / passwd al vostre sistema Linux utilitzant el següent script bash o executar directament allò que s’escriu a continuació mentre les ordres de bucle al terminal.
Creeu un fitxer de text i enganxeu-hi el codi següent:

#! / bin / bash
# total de set camps de / etc / passwd emmagatzemats com a $ f1, f2 ..., $ f7

mentre IFS=:llegir -rf1 f2 f3 f4 f5 f6 f7
fer
trobo 'Usuari$ f1ús$ f7shell i emmagatzema fitxers a$ f6directori. '
fet < /etc/passwd

Mitjançant el bucle while, llegirà els set camps i, a continuació, mostrarà iterativament el contingut del fitxer al terminal.
Deseu el fitxer anterior amb el nom ‘readfile.sh’.

Ara, executeu el fitxer anterior mitjançant l'ordre següent:

$bashreadfile.sh

Exploreu el fitxer / etc / shadow

El fitxer / etc / shadow conté totes les contrasenyes xifrades que s’emmagatzemen en aquest fitxer i que només es poden llegir per als usuaris root.
Executem l'ordre següent per mostrar el contingut:

$suo gat /etc/ombra

Podeu veure tota la contrasenya en el format xifrat:

Conclusió

A l’article anterior hem vist tots els detalls del compte i contrasenyes de l’usuari emmagatzemats al fitxer / etc / passwd del sistema Linux. Podeu llegir aquest fitxer, però només els usuaris root tenen els permisos d’escriptura. A més, també hem vist totes les contrasenyes xifrades emmagatzemades al fitxer / etc / shadow. També podeu explorar el fitxer / etc / group per obtenir detalls sobre el grup de l’usuari.