Tuttavia se si dispone di un accesso fisico alla
macchina e abbiamo la possibilità di riavviarla e scegliere la modalità
di ripristino all’avvio, l’operazione di cambio della password è molto
semplice.
Ripristino mediante recovery mode
Ubuntu sin dall’installazione crea almeno due voci nel boot manager (GRUB),
la prima è quella che utilizziamo abitualmente e avvia il sistema in
modalità normale, la seconda è la modalità di ripristino (recovery mode).
All’avvio del PC appare un messaggio che ci avverte di premere ESC per accedere al menu di GRUB, il boot manager predefinito di Ubuntu.
Premendo ESC sarà presentato l’elenco delle possibilità di scelta di GRUB, generalmente due per ogni versione di kernel installato, la prima per un avvio normale e grafico e la seconda chiamata recovery mode per un ripristino del sistema da console. Per reimpostare la password sceglieremo il recovery mode e premiamo Invio.
Al termine del caricamento sarà presentato un prompt root@nomecomputer:~#
dal quale potremo eseguire qualsiasi comando amministrativo senza
necessità di immettere la password o usare sudo.
Per cambiare la
password del nostro utente scriveremo:
passwd nomeutente
Sarà richiesta due volte la password da assegnare, inserirla, confermarla e al termine scrivere exit per procedere col normale avvio del sistema.
Ripristino mediante cambio init
Se la modalità di ripristino non è disponibile oppure
non funziona o si blocca in malo modo è possibile avviare il kernel
normale, passando delle opzioni per interrompere il caricamento ed
accedere ad una riga dei comandi da cui cambiare la password.
Per fare ciò modificheremo temporaneamente il
programma di avvio init, indicando al kernel di cambiarlo con una shell
bash, anziché con quello predefinito che avvia tutti i servizi normali.
All’avvio interrompere il caricamento con ESC per accedere al menu di GRUB, spostarsi sul primo e premere il tasto e (edit). Spostarsi quindi sulla riga kernel (la seconda) e premere nuovamente e per modificarla.
Cancellare ro quiet splash locale=it_IT e sostituirlo con rw init=/bin/bash e confermare con Invio.
Ritornati
alla videata precedente è possibile eliminare la riga quiet che
nasconde eventuali messaggi che potrebbero esserci utili.
Per farlo ci
sposteremo sulla riga quiet e premeremo il tasto d (delete). Questo passaggio non è obbligatorio in alcun modo.
Avviamo quindi il sistema premendo il tasto b (boot). Dopo il caricamento iniziale del sistema ci sarà proposto un prompt di utente root@(none):/# dal quale potremo eseguire il cambio di password con:
passwd nomeutente
Inserire e confermare la password da assegnare
all’utente. Uscire da questo ambiente però può essere un attimo
problematico, poichè init è il primo programma avviato che tiene in vita
tutto il sistema, se lo chiudessimo con exit il sistema crederebbe che è
andato in errore tutto il sistema, ma altresì Ubuntu non consente il
riavvio dal sistema init rispondendo con un Connection refused se tentiamo il riavvio o lo spegnimento.
Per evitare possibili perdite di dati smontiamo e
rimontiamo il file system in sola lettura e assicuriamoci che tutti i
dati siano stati scritti su disco prima di dare il fatale exit.
In
ordine quindi digitiamo:
mount -o ro,remount / sync exit
Ci sarà quasi sicuramente risposto un minaccioso: Kernel panic – not syncing: Attempted to kill init!
e il sistema si bloccherà.
Fatto ciò potremo riavviare senza paura di
perdere dati, avendo il sistema in sola lettura e con tutte le scritture
già effettuate dato il sync precedente e naturalmente la password
cambiata.
Ripristino mediante chroot da CD
Se non è possibile utilizzare nessuno dei due sistemi
precedenti, ad esempio perché GRUB è bloccato o protetto da una
password, possiamo inserire qualsiasi CD con Linux che ci dia la
possibilità di scrivere comandi su una shell, va bene anche il CD di
installazione di Ubuntu.
In questo ultimo caso la shell la avvieremo
manualmente dal menu Applications, Accessories, Terminal.
Sulla riga dei comandi verifichiamo se siamo root scrivendo:
whoami
Se non ci sarà risposto root, passiamo a root con sudo -s -H oppure su se la distribuzione non utilizza sudo.
Per continuare è necessario essere root.
Se non conosciamo la partizione di avvio di Linux possiamo vedere la tabella delle partizioni con fdisk -l /dev/sda oppure fdisk -l /dev/hda.
Dipende da come vengono rilevati i dischi, in caso di dubbi consultare l’articolo sulle partizioni su Linux.
Una tabella delle partizioni tipica riporta:
Disk /dev/sda: 85.8 GB, 85899345920 bytes 255 heads, 63 sectors/track, 10443 cylinders Units = cilynders of 16065 * 512 = 8225280 bytes Disk identifier: 0x000c48f1 Device Boot Start End Blocks Id System /dev/sda1 * 1 5078 40789003+ 7 HPFS/NTFS /dev/sda2 5079 10217 41279017+ 83 Linux /dev/sda3 10218 10443 1815345 5 Extended /dev/sda5 10218 10443 1815313+ 82 Linux swap / Solaris
Osservare le colonne Device e System.
La partizione di tipo Linux è una sola, si tratta di sda2, è certamente
quella. In un sistema con più partizioni ci si può orientare anche con
le dimensioni o con l’ordine.
Montiamo quindi quella partizione e cambiamo l’ambiente attivo con:
mount /dev/sda2 /mnt chroot /mnt /bin/bash
Fatto ciò ci troveremo una shell bash aperta
nell’ambiente di quella partizione, quasi come se avessimo avviato da
quella partizione, tutte le operazioni sono reali su quel disco e non
come se avessimo avviato da CD.
Cambiare la password è molto semplice da qui:
passwd nomeutente
Inserire e confermare la password. Quindi uscire dall’ambiente chroot, smontare la partizione e riavviare:
exit umount /mnt reboot
Et voilà il cambio è fatto. Esistono anche altre
maniere ma dovrebbero bastare queste tre principali. Ciò dovrebbe
insegnarci a non fidarci troppo della protezione mediante password,
chiunque abbia accesso fisico alla macchina può reimpostare la password o
addirittura toglierla temporaneamente e rimetterla esattamente come
prima anche senza conoscerla.