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 sudopermessi 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 sudoaccesso, ma si fare avere accesso a modificare /etc/{passwd,shadow}. Apri /etc/shadow, con sudoedit /etc/shadowo 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:
kernelo 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 singlesi aggiunge init=/bin/sh. Questo verrà eseguito /bin/shal posto di init, e ti darà una shell molto precoce quasi senza servizi. A questo punto il tuo obiettivo è:
passwdcorrere.passwdcomando.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/shsuoi figli, quindi sei letteralmente da solo. Inoltre non hai il controllo del lavoro, quindi fai attenzione a ciò che scrivi. Uno fuori posto cate 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 visul 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 rootal prompt di accesso e non ne verrà richiesto uno. È quindi possibile utilizzare passwdper impostarne uno.
Per stare molto attenti:
/etc/shadow.passwdin 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 roote modificare la password. Quindi digitare rebootper riavviare il sistema.
/boot/grub/grub.confper rimuovere la password del bootloader e /etc/inittabcambiare la shell per singolo utente in qualcosa come / bin / sh (cc @pradeepchhetri)