Se non conosciamo la password di root e non abbiamo accesso root alla macchina, come possiamo cambiare la password di root?
Se non conosciamo la password di root e non abbiamo accesso root alla macchina, come possiamo cambiare la password di root?
Risposte:
Ecco alcuni modi a cui riesco a pensare, dal meno invadente al più invadente.
Con sudo: se hai i sudo
permessi per eseguire passwd
, puoi fare:
sudo passwd root
Inserisci la tua password, quindi inserisci due volte una nuova password per root. Fatto.
La modifica dei file : questo funziona nel caso improbabile che non hanno pieno sudo
accesso, ma si fare avere accesso a modificare /etc/{passwd,shadow}
. Apri /etc/shadow
, con sudoedit /etc/shadow
o con sudo $EDITOR /etc/shadow
. Sostituisci il campo password di root (tutti i caratteri casuali tra il secondo e il terzo punto :
) con il campo password del tuo utente. Salvare. Il locale ha la tua stessa password. Accedi e cambia la password in qualcos'altro.
Questi sono quelli facili.
Modalità utente singolo : questo è stato appena spiegato da Renan. Funziona se riesci ad accedere a GRUB (o al tuo boot loader) e puoi modificare la riga di comando di Linux. Non funziona se usi Debian, Ubuntu e altri. Alcune configurazioni del caricatore di avvio richiedono una password per farlo, e devi sapere che per procedere. Senza ulteriori indugi:
kernel
o linux
.Il sistema verrà avviato in modalità utente singolo. Alcune distribuzioni non ti chiederanno una password di root a questo punto (lo fanno quelle basate su Debian e Debian). Sei root adesso. Cambia la tua password:
mount / -o remount,rw
passwd # Enter your new password twice at the prompts
mount / -o remount,ro
sync # some people sync multiple times. Do what pleases you.
reboot
e reboot
, o, se conosci il tuo normale runlevel, dì telinit 2
(o qualunque cosa sia).
Sostituzioneinit
: superficialmente simile al trucco in modalità utente singolo, con in gran parte le stesse istruzioni, ma richiede molta più abilità con la riga di comando. Si avvia il kernel come sopra, ma invece single
si aggiunge init=/bin/sh
. Questo verrà eseguito /bin/sh
al posto di init
, e ti darà una shell molto precoce quasi senza servizi. A questo punto il tuo obiettivo è:
passwd
correre.passwd
comando.A seconda della configurazione specifica, questi possono essere banali (identici alle istruzioni per la modalità utente singolo) o altamente non banali: caricamento dei moduli, inizializzazione del software RAID, apertura di volumi crittografati, avvio di LVM, eccetera. Senza init
, non stai eseguendo demoni o altri processi ma con i /bin/sh
suoi figli, quindi sei letteralmente da solo. Inoltre non hai il controllo del lavoro, quindi fai attenzione a ciò che scrivi. Uno fuori posto cat
e potrebbe essere necessario riavviare se non riesci a uscirne.
Rescue Disk : questo è facile. Avvia un disco di ripristino di tua scelta. Monta il tuo filesystem di root. Il processo dipende da come i tuoi volumi sono stratificati, ma alla fine si riduce a:
# do some stuff to make your root volume available.
# The rescue disk may, or may not do it automatically.
mkdir /tmp/my-root
mount /dev/$SOME_ROOT_DEV /tmp/my-root
$EDITOR /tmp/my-root/etc/shadow
# Follow the `/etc/shadow` editing instructions near the top
cd /
umount /tmp/my-root
reboot
Ovviamente, $SOME_ROOT_DEV
è qualunque sia il nome del dispositivo a blocchi assegnato al filesystem di root dal disco di ripristino ed $EDITOR
è il tuo editor preferito (che potrebbe dover essere vi
sul sistema di ripristino). Dopo il reboot
, consentire alla macchina di avviarsi normalmente; la password di root sarà quella del tuo stesso utente. Accedi come root e modificalo immediatamente.
Ovviamente, ci sono innumerevoli variazioni a quanto sopra. Si riducono tutti a due passi:
Questo dovrebbe funzionare su qualsiasi distribuzione, credo.
Se è possibile accedere alla partizione di root da un altro sistema, ad esempio un CD live, è possibile modificare da lì come root /etc/shadow
; prima devi chmod u+w shadow
. Trova la voce per root
, probabilmente è la prima e si presenta in questo modo:
root:$6$asdG0[..etc...]ae/:15666:0:99999:7:::
Cancella tutto tra i primi due punti in modo da finire con:
root::15666:0:99999:7:::
Poi chmod u-w shadow
. Ora puoi riavviare il sistema e root non avrà password. Puoi semplicemente digitare root
al prompt di accesso e non ne verrà richiesto uno. È quindi possibile utilizzare passwd
per impostarne uno.
Per stare molto attenti:
/etc/shadow
.passwd
in un ambiente chroot dal live CD?
/etc/shadow
A giudicare dai tag presumo che stai usando RHEL, ma questa soluzione dovrebbe funzionare ugualmente bene per tutte le distro.
Se la password di root viene dimenticata, è possibile eseguire l'avvio in modalità utente singolo e utilizzarla per modificare la password. Questo approccio è descritto nella guida dettagliata di Red Hat :
kernel
, premi di enuovo.single
. Quindi premere ENTERe boot da esso.Alla fine ti verrà richiesto di digitare passwd root
e modificare la password. Quindi digitare reboot
per riavviare il sistema.
/boot/grub/grub.conf
per rimuovere la password del bootloader e /etc/inittab
cambiare la shell per singolo utente in qualcosa come / bin / sh (cc @pradeepchhetri)