Dove e come vengono archiviate le password su Linux?

Where How Are Passwords Stored Linux

Il nome utente con una password corrispondente per un account specifico è il requisito principale attraverso il quale un utente può accedere a un sistema Linux. La password di tutti gli account utente viene salvata in un file o in un database in modo che un utente possa essere verificato durante il tentativo di accesso al sistema. Ogni utente non dispone di competenze e competenze sufficienti per individuare questo file sul proprio sistema. Tuttavia, se si ottiene l'accesso al database o a un file che conserva tutte le password dell'utente di accesso, è possibile accedere facilmente al sistema Linux. Quando un utente immette un nome utente e una password su Linux per l'accesso, verifica la password immessa rispetto a una voce in vari file della directory '/etc'.

I file /etc/passwd conservano tutte le informazioni importanti necessarie per l'accesso dell'utente. Per spiegarlo in parole più semplici, il file /etc/passwd memorizza i dettagli dell'account dell'utente. Questo file è un semplice file di testo che contiene un elenco completo di tutti gli utenti sul tuo sistema Linux. Ha le informazioni su nome utente, password, UID (ID utente), GID (ID gruppo), shell e directory principale. Questo file dovrebbe avere le autorizzazioni di lettura poiché molte utilità della riga di comando vengono utilizzate per mappare gli ID utente al nome utente. Tuttavia, dovrebbe avere autorizzazioni di accesso in scrittura limitate solo per gli account utente superutente o root.



Questo articolo dimostrerà come e dove è possibile memorizzare le password dell'account dell'utente di sistema sulla distribuzione Linux. Abbiamo implementato tutte le dimostrazioni sul sistema Ubuntu 20.04. Tuttavia, puoi trovare il file /etc/passwd su qualsiasi distribuzione Linux.



Prerequisiti

Dovresti avere i privilegi di root per eseguire comandi amministrativi.



Comprensione di base sul file /etc/passwd

Il file /etc/passwd contiene le informazioni sull'account utente del sistema. Tutti i campi memorizzati sono separati dai due punti: segno.
Quando esegui il comando seguente, vedrai ogni voce di file del file /etc/passwd:

$gatto /eccetera/passwd

Il comando sopra elencherà tutti gli utenti del tuo sistema Linux.
Il seguente tipo di formato verrà visualizzato sullo schermo del terminale:

Dettagli sul formato dei campi /etc/passwd
Dall'immagine sopra:

Nome utente: Il campo uno rappresenta il nome dell'utente. La lunghezza del campo nome utente è definita tra 1-32 caratteri. Viene utilizzato quando un utente accede al sistema. Nell'esempio sopra, 'khuzdar' è il nome utente.
Parola d'ordine: Nell'esempio sopra, il carattere x mostra che la password è memorizzata in forma crittografata nel file /etc/shadow.
ID utente (UID): L'ID utente deve essere assegnato separatamente a ciascun utente. Lo zero UID viene assegnato all'utente root e gli ID utente da 1 a 99 vengono assegnati agli account predefiniti o standard. Gli ulteriori UID da 100 a 999 vengono assegnati ad account o gruppi amministrativi di sistema. Nella schermata sopra, l'ID utente è 1001.
ID gruppo (GID): Il campo successivo rappresenta l'ID del gruppo. Il GID è memorizzato nel file /etc/group. Sulla base dell'esempio precedente, l'utente appartiene all'id di gruppo 1001.
Informazioni sull'ID utente: Il campo seguente è destinato ai commenti. In questo campo è possibile aggiungere alcune informazioni aggiuntive sull'utente specificato, come il nome completo dell'utente, il numero di telefono, ecc. Tuttavia, nell'esempio precedente, l'utente non fornisce alcun numero di telefono.
Elenco principale: Questo campo mostra la posizione della directory home assegnata all'utente corrente. Se la directory specificata non esiste, verrà visualizzato /. L'immagine sopra mostra la posizione dell'utente evidenziato nella directory home, che è home/kbuzdar.
Comando//shell: Il percorso assoluto predefinito di una shell o di un comando è /bin/bash. Questo è noto come il guscio. Ad esempio, sysadmin utilizzando la shell nologin. Si comporta come shell sostitutiva per gli account utente di sistema. Se la shell si trova nel percorso di /sbin/nologin e l'utente desidera accedere direttamente al sistema Linux, la shell /sbin/nologin chiuderà o disabiliterà la connessione.



Cerca utente nel file /etc/passwd

Puoi cercare un utente specifico con il file /etc/passwd, usando il comando grep. Ad esempio, vogliamo cercare il nome utente 'kbuzdar' dal file /etc/passwd, utilizzando la seguente sintassi, quindi possiamo facilmente cercare un utente specificato, risparmiando tempo:

$presanome utente/eccetera/passwd

La sintassi sopra cambierà nella seguente forma:

$presacigolante/eccetera/passwd


o

$presa -in '^kbuzdar' /eccetera/passwd

Visualizza i permessi sul file /etc/passwd

Come accennato in precedenza, tutti gli altri utenti, eccetto root, dovrebbero essere in grado di leggere i permessi sul file /etc/passwd e che il proprietario deve essere superutente o root.
Digitare quanto segue per controllare i permessi di lettura sul file:

$ls -l /eccetera/passwd

Il seguente esempio di output verrà visualizzato sul terminale:

Lettura del file /etc/passwd

Puoi leggere il file /etc/passwd sul tuo sistema Linux utilizzando il seguente script bash o eseguire direttamente ciò che è scritto di seguito mentre i comandi di loop sul terminale.
Crea un file di testo e incollaci il seguente codice:

#!/bin/bash
# sette campi in totale da /etc/passwd memorizzati come $f1,f2...,$f7

mentre IFS=:leggere -Rf1 f2 f3 f4 f5 f6 f7
fare
buttato fuori 'Utente$ f1utilizzo$f7shell e memorizza i file in$f6directory.'
fatto < /eccetera/passwd

Usando il ciclo while, leggerà tutti e sette i campi e quindi visualizzerà in modo iterativo il contenuto del file sul terminale.
Salva il file sopra con il nome 'readfile.sh'.

Ora, esegui il file sopra usando il seguente comando:

$bashreadfile.sh

Esplora il file /etc/shadow

Il file /etc/shadow contiene tutte le tue password crittografate che sono memorizzate in questo file che sono leggibili solo per gli utenti root.
Eseguiamo il seguente comando per visualizzare il contenuto:

$sudo gatto /eccetera/ombra

Puoi vedere tutte le password in formato crittografato:

Conclusione

Abbiamo visto dall'articolo precedente, tutti i dettagli dell'account dell'utente e le password archiviate nel file /etc/passwd nel sistema Linux. Puoi leggere questo file, ma solo gli utenti root hanno i permessi di scrittura. Inoltre, abbiamo anche visto tutte le password crittografate archiviate nel file /etc/shadow. Puoi anche esplorare il file /etc/group per ottenere dettagli sul gruppo dell'utente.