Ogni utente ha dimenticato almeno una volta le password di siti web o social network che non utilizzava da tempo. Una situazione simile può verificarsi con una distribuzione Linux. Non è difficile dimenticarla, soprattutto se ci sono molte distribuzioni diverse con password diverse. Parliamo quindi di cosa fare se la password di Linux è stata dimenticata, come resettarla correttamente e non cancellare i dati. Resettare una password di Linux non è un compito molto difficile. Va però chiarito che non è possibile scoprire la password, ma solo resettarla.
Per reimpostare la password, è necessario armarsi di un disco LiveCD con una qualsiasi distribuzione Linux, l'importante è solo far coincidere la capacità di bit del sistema da recuperare con quella del disco. È meglio prendere le versioni più recenti delle distribuzioni. Sono più comode da usare, ma anche Gentoo e ArchLinux vanno bene.
Quindi, avviate dal disco LiveCD e aprite il terminale. Se il disco si avvia in una shell di comando senza interfaccia grafica, va bene. È necessario sapere su quale disco rigido si trova il file system principale della distribuzione che si intende installare. È possibile visualizzare tutti i dischi disponibili con il comando:
$ fdisk -l
Di norma, il nome del disco inizia con le lettere sd per i dischi normali e nvme per le unità M.2 SSD. La partizione root è piccola se durante l'installazione è stata allocata una partizione separata per la cartella home e se ha un file system Linux. Se non è stata creata una partizione separata per il boot loader, anche la partizione principale sarà contrassegnata da un asterisco come avviabile. Ad esempio, questa è /dev/nvme0n1p1
. Dovrebbe essere montata su /mnt
:
$ mount /dev/nvme0n1p1 /mnt/
Quindi possiamo vedere /dev/nvme0n1p1 - la partizione dove è stato installato il sistema. Potrebbe anche essere /dev/sda1
o /dev/sdb5
. Quindi entrare nell'ambiente chroot:
$ chroot /mnt /bin/bash
Ora ci troviamo nell'ambiente della distribuzione installata sul disco montato. Questa è una variante della modalità di ripristino senza avviare il sistema operativo.
Successivamente, l'utente può impostare la password dell'utente root linux utilizzando il comando passwd
:
$ passwd root
È possibile che l'utility dia un errore, ma se non dà alcun errore, la password è stata aggiornata con successo e si può usare il sistema.
C'è un altro modo. Le password di tutti gli utenti sono memorizzate nel file /etc/shadow
in questo modo:
user_name:encrypted password:user_id:group id_id
Ad esempio:
root:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:0:0:::::
bin:!!:9797:0:::::
daemon:!!:9797:0:::::
Per ogni voce, tutti i parametri sono separati da due punti, il primo parametro (root) è il nome utente, il secondo parametro (AAAAAAAAAAAAAAAAAAAAAAAAAAAA...) è l'hash della password. Per cambiare la password con quella desiderata, occorre prima creare manualmente il suo hash. Per farlo, si può usare questo comando:
$ openssl passwd -1 -salt xyz new_password
Quindi incollarlo al posto di quello precedente:
$ vi /etc/passwd
Non è possibile rimuovere completamente la password di Linux, senza la quale non sarà possibile autorizzarsi nel sistema, quindi l'opzione migliore è sostituirla con una nuova. Dopo averla sostituita, salvate le modifiche e il gioco è fatto. Prima di riavviare il sistema, non dimenticate di uscire da chroot e smontare la root del sistema:
$ exit
$ umount /mnt
Se non avete un disco a portata di mano, potete usare Grub per questo scopo. Nel menu delle opzioni di avvio, premere E per modificare i parametri del kernel:
Qui nella riga vmlinuz dopo tutti i parametri (vedi screenshot) è necessario aggiungere il parametro init=/bin/bash
:
Premere Ctrl+D
per continuare l'avvio. Al termine dell'inizializzazione, il kernel passerà il controllo al comando bash shell che abbiamo passato nei parametri del kernel, dove è possibile recuperare la password. Per impostazione predefinita, il file system è montato in modalità di sola lettura; per poter modificare qualcosa è necessario rimontarlo in scrittura:
$ exit
$ umount /mnt
Tutte le altre azioni con il file /etc/shadow
sono simili al primo punto.