Raspbian per impostazione predefinita è configurato in modo tale che l'account di root non possa essere registrato utilizzando una password. Questo viene fatto iniziando con una voce in /etc/password
cui inizia:
root:x:0:0:
I campi sono separati da due punti e spiegati in man 5 passwd
(nota 5
, poiché man passwd
ti darà la pagina man per il comando passwd
; la sezione 5 è per i file di configurazione, e in questo caso hanno lo stesso nome). Qui il primo è il nome ( root
), il terzo e il quarto sono l'UID numerico e GID (entrambi 0
) e il secondo è per la password. Per la maggior parte delle voci questo sarà x
, indicando la password attuale è in un altro file, /etc/shadow
.
Si noti che "la password effettiva" non è memorizzata da nessuna parte. Ciò che è archiviato shadow
è un hash unidirezionale della password effettiva. Un hash unidirezionale è il risultato di un processo che produrrà sempre la stessa cosa (consentendo la verifica della password), ma è irreversibile. In altre parole, se qualcuno mette le mani su shadow
, non c'è modo di dedurre la password dall'hash. Tuttavia, se possono modificare shadow
, ovviamente possono disabilitare o cambiare ciò che funzionerà come password. Ma non saranno mai in grado di scoprire le tue password. Questo è il motivo per cui root
non è nemmeno possibile farlo (sebbene root possa sempre cambiarli in qualcos'altro senza aver bisogno dell'originale).
Nel caso di root, la voce shadow
inizia in questo modo, come per la maggior parte degli altri account di sistema:
root:*:
Il *
indica attualmente non v'è possibile la password che potrebbe essere utilizzato per questo account.
L'utente root può modificarlo, tuttavia, usando il passwd
comando per impostare una nuova password, che sostituirà quella *
con l'hash menzionato in precedenza (iniziano sempre $n$
dove n
c'è un valore casuale che viene usato come "salt" per l'hash, ma non c'è bisogno di capirlo).
Ad ogni modo, quando imposto una carta da una nuova immagine la prima cosa che faccio è entrare /etc/passwd
e rimuovere la x
voce così root ora inizia:
root::0:0
Si noti che ora non esiste un secondo campo. Ciò significa che non c'è password e tutto ciò che devi fare è digitare root
al prompt di accesso e sei loggato come root
. È quindi possibile utilizzare passwd
per impostarne uno.
Quindi, hai due scelte qui, ma entrambe richiedono di estrarre la scheda dal pi e accedere alla seconda partizione da un altro sistema (che può leggere / scrivere partizioni ext4).
Restore sudoers
. Se hai un'immagine di riferimento, è facile, puoi semplicemente rimetterla com'era sostituendola. Altrimenti è l'opzione più complicata poiché devi sapere cosa stai facendo (e il tuo track record con sudoers
non è così buono ...).
Modificalo /etc/passwd
e rimuovilo x
come descritto sopra, reinserisci la scheda, accedi come root
, crea una password. Certo, dovrai comunque risolvere sudoers
, ma tentativi ed errori saranno resi più semplici poiché se lo sei davvero root
, sarai sempre in grado di accedervi.
Se non hai un sistema in grado di accedere ai filesystem ext4 (un "live CD" Debian è una buona scelta qui), allora sei bloccato. Dovrai rifare la carta e ricominciare.