Come possiamo cambiare la password di root?


Risposte:


63

Ecco alcuni modi a cui riesco a pensare, dal meno invadente al più invadente.

Senza riavviare

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.

Riavvio richiesto

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:

  1. Reboot.
  2. Immettere la password di avvio, se presente.
  3. Accedi al menu del tuo caricatore di avvio.
  4. Se è disponibile la modalità utente singolo, selezionala (Debian lo chiama 'Modalità di recupero').
  5. In caso contrario, esegui GRUB:
    1. Evidenzia la tua normale opzione di avvio.
    2. Premere eper accedere alla modalità di modifica. È possibile che ti venga richiesta una password di GRUB.
    3. Evidenzia la linea che inizia con kernelo linux.
    4. Press e.
    5. Aggiungi la parola "single" alla fine. (non dimenticare di anteporre uno spazio!)
    6. Premere Entere avviare la stanza modificata. Alcuni GRUB usano Ctrl- X, alcuni usano b. Dice quale si trova nella parte inferiore dello schermo.

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 è:

  1. Montare il volume principale.
  2. Inizia a passwdcorrere.
  3. Cambia la tua password con il 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.

Altri modi

Ovviamente, ci sono innumerevoli variazioni a quanto sopra. Si riducono tutti a due passi:

  1. Ottieni l'accesso root al computer (catch-22 - e il vero trucco)
  2. Cambia la password di root in qualche modo.

In ogni caso farlo da remoto? Supponendo che SSH sia stato arrestato.
CMCDragonkai,

1
Senza SSH (o, presumendo uno qualsiasi degli altri, metodi poco insicuri come rsh o telnet), non si ha accesso remoto alla macchina, quindi non è possibile modificare la password. A meno che, naturalmente, il computer di destinazione abbia un noto problema di sfruttamento remoto che può aiutarti in qualche modo a generare una shell. Il pensiero mi terrorizza più di un demone telnet che lo esegue. :)
Alexios,

Quindi dovrei teletrasportarmi fisicamente lì per ripararlo?
CMCDragonkai,

WRT "Cambia la password di root in qualche modo", vedi qui: unix.stackexchange.com/a/168422/25985
goldilocks,

7

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:

  • Crea prima una copia di backup /etc/shadow.
  • Non accedere come nessuno tranne root fino a quando non hai impostato una nuova password. Questo non è critico, ma protegge dalla possibilità teorica che un malware senza privilegi faccia passare una specie di grandine ("Ehi, forse non c'è una password di root ..."). Un po 'inverosimile IMO.

Funzionerà, ma ragazzo mi fa * rabbrividire * per rimuovere la password su un account di root. Presumo che Ubuntu non ti lasci cadere in una shell di root nel runlevel 1? O non sarebbe un'idea migliore eseguire passwdin un ambiente chroot dal live CD?
SailorCire,

Se ti senti più sicuro provando prima quegli altri metodi, vai avanti. Ma finché non lasci il sistema senza una password di root, questo dovrebbe andare bene. Non avrebbe senso il malware che tentasse di sfruttare questo, perché se fosse in esecuzione all'avvio, ha già comunque i privilegi di root. Quindi non accedere come nessun altro prima, suppongo (potrebbe essere un problema su sistemi che non consentono il root tramite il display manager, a meno che tu non possa passare alla console). Anche allora sembra abbastanza improbabile.
Riccioli d'oro,

@SailorCire ^^^
goldilocks

Sono anche molto dubbioso sulla possibilità del malware. Tuttavia, l'idea alla base di ciò che ho suggerito è che proibisce il tipo di mentalità "Oh, lo cambierò più tardi, perché funziona ora" in cui molti di noi rientrano.
SailorCire,

Puoi anche fare riferimento a questa risposta per i modi per generare manualmente una password per/etc/shadow
NullUser

4

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 :

  1. Entra nel menu di GRUB e premi e.
  2. Scegli la riga che inizia con kernel, premi di enuovo.
  3. Alla fine di questa linea, metti 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.


1
Funzionerà solo se non hai alcun passwd di avvio.
pradeepchhetri,

1
E se non stai usando / sbin / sulogin per la shell di un singolo utente (richiederà la password di root).
James O'Gorman,

Se riesci ad accedere al file system puoi modificarlo /boot/grub/grub.confper rimuovere la password del bootloader e /etc/inittabcambiare la shell per singolo utente in qualcosa come / bin / sh (cc @pradeepchhetri)
NullUser
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.