Sicurezza

Dove e come vengono archiviate le password su Linux?

Dove e come vengono archiviate le password su 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 ha abbastanza competenze e competenze per individuare questo file sul proprio sistema. Tuttavia, se ottieni l'accesso al database o a un file che conserva tutte le password dell'utente di accesso, puoi accedere facilmente al sistema Linux. Quando un utente immette un nome utente e una password su Linux per l'accesso, verifica la password inserita 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 home directory. Questo file dovrebbe avere i permessi di lettura poiché molte utilità della riga di comando vengono utilizzate per mappare gli ID utente sul nome utente. Tuttavia, dovrebbe avere autorizzazioni di accesso in scrittura limitate solo per 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 su Ubuntu 20.04 sistema. 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 tuo 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:

$ cat /etc/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 è assegnato all'utente root e gli ID utente da 1 a 99 sono assegnati ad account predefiniti o standard. Gli ulteriori UID da 100 a 999 sono 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 sopra, l'utente appartiene al gruppo id 1001.
Informazioni sull'ID utente: Il campo seguente è destinato ai commenti. In questo campo, puoi 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, amministratore di sistema che utilizza 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:

$ grep nome utente /etc/passwd

La sintassi sopra cambierà nella seguente forma:

$ grep kbuzdar /etc/passwd


O

$ grep -w '^kbuzdar' /etc/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 /etc/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=: leggi -r f1 f2 f3 f4 f5 f6 f7
fare
echo "L'utente $f1 usa la shell $f7 e memorizza i file nella directory $f6."
fatto < /etc/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:

$ bash readfile.sh

Esplora /etc/shadow file

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 cat /etc/shadow

Puoi vedere tutte le password in formato crittografato:

Conclusione

Abbiamo visto dall'articolo precedente, tutti i dettagli dell'account dell'utente e le password memorizzate 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.

Come mostrare l'overlay OSD in app e giochi Linux a schermo intero
Giocare a giochi a schermo intero o utilizzare app in modalità a schermo intero senza distrazioni può tagliarti fuori dalle informazioni di sistema ri...
Le 5 migliori carte di acquisizione del gioco
Abbiamo tutti visto e amato i giochi in streaming su YouTube. PewDiePie, Jakesepticye e Markiplier sono solo alcuni dei migliori giocatori che hanno g...
Come sviluppare un gioco su Linux
Un decennio fa, non molti utenti Linux avrebbero previsto che il loro sistema operativo preferito un giorno sarebbe diventato una piattaforma di gioco...