Contact me sending an e-mail (antispam defense activated) |
Title: Cosa fare quando si perde la password di root Author: Sandro Tosi Last modified: 2004-10-10 (2004-07-11) La perdita della password di root e` una cosa molto grave che a nessun amministratore di sistema dovrebbe mai accadere, ma si sa, in casa ognuno e` amministratore della propria macchina, e quindi l'abitudine all'amministrazione viene meno. Nel caso, dunque, questa password venga smarrita, l'utilizzo del sistema verrebbe gravemente compromessa: risulta necessario recuperare, o meglio modificare, detta password in modo da evitare di dover reinstallare il sistema operativo (non siamo mica sotto Windows...). Una possibilita` consiste nell'eseguire il boot tramite un cd di installazione (magari quello che si e` utilizzato per installare la distribuzione la prima volta), e poi da questa entrare nella modalita` ``rescue'' (o come viene chiamata) in modo da ottenere una shell: a questo punto, e` possibile montare il root filesystem del computer ed editare il file <hd>/etc/passwd (oppure <hd>/etc/shadow, se il secondo campo di <hd>/etc/passwd contiene una `x'), cancellare la password criptata, riavviare, fare login come root e con password vuota, ed infine reimpostarla. (si guardino `man passwd' e `man shadow'). Alla fine dell'operazione, prima di riavviare, conviene eseguire un `sync', per scrivere le modifiche effettuate sul disco fisso: e` piu` una paranoia che una necessita` vera... Ogni sistema Linux dispone di diversi runlevel, scelti al boot del sistema, tra cui uno di default e gli altri utilizzabili indicando un parametro aggiuntivo al nome del kernel dell'avvio: il numero del runlevel. Il primo, quindi il runlevel 1, e` il noto ``single user mode'', cioe` una configurazione di emergenza in cui un solo utente ha accesso al computer come root. E` quindi sufficiente, all'avvio, inserire nel boot loader la stringa `linux single' o, analogamente, `linux 1' per avere accesso al sistema come l'utente root e senza che venga richiesta password (questo non e` sempre, si veda dopo). Perche` tutto questo sia possibile, non deve essere protetto il boot loader: per esempio, con lilo, si possono introdurre ulteriori due righe nella definizione di un'immagine (oltre a quelle che indicano il nome dell'immagine e la label) che sono password=<pwd> restricted in modo che per modificare il runlevel si debba introdurre <pwd>. In questo caso e` possibile aggirare queste limitazioni tramite # linux init=/bin/bash rw dove viene chiesto di eseguire, al posto di `init', una shell (se `rw' di init non funziona, si puo` sempre eseguire `mount -o remount,rw /' da bash); questo non richiede password. Anche in questo caso, dopo aver apportato modifiche e prima di riavviare, conviene eseguire `sync'. init 1 e` possibile anche invocarlo da remoto, ma solo se si e` root, ma comunque sia, una volta eseguito init 1, l'unico modo per interagire con la macchina sara` tramite una console locale... In generale, le distribuzioni consentono di entrare in `init 1' senza chiedere password, ma per esempio Debian, richiede di inserirla ugualmente (si veda `man securetty' e `cat /etc/securetty'). Sebbene possa sembrare strano che sia cosi` facile avere accesso come root, si deve ricordare che nessuna macchina puo` essere considerata sicura quando si ha accesso fisico ad essa, in quanto sarebbe possibile eseguire il boot da floppy o da cdrom, smontare fisicamente l'hard disk e montarlo su un altro computer. Quello che si puo` fare e` impostare la password nel BIOS (sperando che non esistano password backdoor, che molti produttori di BIOS impostano), settare il timeout di lilo a 0 e bloccare l'accesso al floppy. |