Qualora il bootloader lo permetta (password di protezione, etc...) è possibile eseguire un root password recovery senza dover necessariamente montare la partizione da una live distro et simila.
Si riportano le istruzioni per i bootloader grub e lilo:
GRUB
- selezionare il SO interessato, premere e
;
- selezionare l'immagine del kernel (abitualmente la stringa comincia per "kernel...") e premere e
nuovamente;
- inserire, in fondo alla stringa, la parola single
, confermare e premere b
per eseguire il boot;
- il sistema effettuerà il boot come da manuale con l'eccezione di non richiedere user e password, finendo dritto in bash; è pertanto possibile digitare:
passwd root
per modificare la password di sistema;
- lanciare il comando sync
per assicurarsi il completamento delle operazioni di sincronia della cache con i/l disco/i;
- lanciare il comando reboot
per riavviare il sistema.
LILO
- una volta riavviato il sistema, al prompt digitare linux single
- non appena caricato il SO, sarà possibile digitare: passwd root
per modificare la password di sistema;
- lanciare il comando sync
per assicurarsi il completamento delle operazioni di sincronia della cache con i/l disco/i;
- lanciare il comando reboot
per riavviare il sistema.
Problematiche di sicurezza su server fisicamente non protetti
Root Password Recovery from Bootloader
Nulla di molto ;-) sbagliato in questa Infobox, solo un po' troppo ottimistica.
Diverse distribuzioni anche partendo in single user mode (fra parentesi, come si puo` constatare, oltre a "single" si puo` ottenere lo stesso effetto anche con "S" e credo pure con "1"), chiedono comunque la password di root.
Per evitare cio` si puo aggiungere ancora alla fine della riga di boot " init=/bin/sh". In questo modo, invece di eseguire init, il sistema all'avvio eseguira` la shell e ci si trovera` al prompt di root (#) senza che sia avvenuta la richiesta di password. Normalmente pero` a questo punto non si sara` in grado di cambiare la password perche' l'unico file system montato sara` / (la radice) e in read only. Bisognera` quindi rimontare il file system in read-write e dato che a qualunque sysadm un bel RTFM non ha mai fatto male, per come fare vi rimando alla man page di mount. Una volta montato il file system in read-write si procedera` come descritto nella Infobox che sto commentando (fra parentesi sugli UNIX di una certa eta`, era tradizione dare sync;sync;sync, ovvero sync 3 volte per ottenere con sicurezza l'effetto richiesto; con Linux oggi puo` darsi che non sia piu` necessario, ma farlo non guasta e infine, invece del comandoo reboot, si puo` usare l'interruttore dell'alimentazione della macchina).
Comunque se si puo` procedere come descritto, vuol dire che si e` stati ancora abbastanza fortunati, dato che un sysadm agguerrito avrebbe protetto con password sia LILO, sia GRUB (fra parentesi, anche se le modalita` sono diverse, l'effetto sarebbe stato lo stesso) e a questo punto non sarebbe piu` stato possibile passare al prompt dei 2 programmi gli argomenti per far partire il sistema in SUM o fargli eseguire la shell invece di init (a meno di non conoscere la password di LILO o GRUB).
Se siamo in queste condizioni, come si puo` fare? boot da CD, floppy o chiave USB con Linux e poi, dopo aver identificato il file system di root sull'hd, si procede come sopra (molto utile a tal fine puo` essere una stampa di /etc/fstab - onde non dover andare per tentativi ed errori). In casi del genere consiglio vivamente Linux RIP (Recovery Is Possible), che ha un kernel in grado di riconoscere controller SCSI anche abbastanza esotici, diversi tipi di file system Linux e i moduli per il RAID e che mi ha gia` salvato il c. diverse volte.
Comunque anche questa soluzione si infrange sull'opera di un sysadm particolarmente scrupoloso e feroce che abbia impostato da BIOS della piastra come unico dispositivo di boot l'HD e che abbia protetto la modifica delle impostazioni del BIOS con password. Persino una condizione del genere e` ancora superabile, ma normalmente richiede tempo e quindi se si volessero fare questi giochetti su un server, probabilmente gli utenti si accorgerebbero della lunga indisponibilita` della macchina. Comunque non ne trattero` qui perche' si tratta di manovre ed operazioni hardware che non hanno stretta attinenza con Linux.