Reimposta la password in Ubuntu / Linux Bash in Windows


191

Ho installato Linux Bash su Windows 10 (disponibile da Microsoft), ma ho dimenticato la mia password.

Ho cercato una soluzione ma trovo solo suggerimenti che prevedono di fare qualcosa prima che il sistema si avvii, come accedere alla modalità di recupero, ma che non funzionerà in questo caso poiché Ubuntu è solo un'applicazione all'interno di un sistema Windows e non ha il proprio processo di avvio.

Come posso resettare la mia password?


4
Quale password hai perso esattamente? La password del tuo account di Windows?
David Foerster,

un esempio di "opzione di avvio" potrebbe essere l'avvio in modalità utente singolo impostando il cmdline del kernel su "single" tramite grub. Per quelli curiosi.
kevinf,

1
In WSL2 (windows 10 v1903) è cambiato. Da cmd o powershell, avvia una shell ubuntu come root: wsl -user root Quindi: passwd <il tuo nome utente>. esci wsl. La prossima volta che si aprirà ubuntu shel: sudo ls accetterà la nuova password di root.
jdh,

Risposte:


323
  • Esegui bashe annota il tuo nome utente Linux (questo non deve corrispondere al tuo nome utente Windows), vedi Come posso trovare il mio nome utente?
  • Chiudi Bash su Ubuntu se è in esecuzione (o il comando successivo fallirà).
  • Nel prompt dei comandi dell'amministratore di Windows ( Super+ X, A) cambia l'utente predefinito in root:

    ubuntu config --default-user root
    

Se stai usando Ubuntu 18.04 in WSL, il comando è cambiato in ubuntu1804, quindi

ubuntu1804 config --default-user root
  • Ora Bash su Ubuntu su Windows ti accede come root senza chiedere la password
  • Utilizzare il passwdcomando in Bash per modificare la password dell'utente (l'utente di cui si desidera reimpostare la password):

    passwd your_username
    
  • Riporta l'utente predefinito al tuo normale utente nel prompt dei comandi di Windows

    ubuntu config --default-user  your_username
    

Se stai usando Ubuntu 18.04 in WSL, il comando è cambiato in ubuntu1804, quindi

ubuntu1804 config --default-user your_username

Guarda il video completo per recuperare la password Sottosistema Windows Linux https://youtu.be/dTR232yvDCE

Nota 1: il sottosistema utilizzato nel video non è Ubuntu, ma Kali Linux. Da qui la differenza nel comando.

Nota 2: se si sta ancora utilizzando il sottosistema Ubuntu originale fornito con l'aggiornamento dell'anniversario, utilizzare il comando lxrun . Si consiglia l'aggiornamento alla versione del sottosistema distribuita tramite Microsoft Store.)


7
lxrunè per la versione beta di WSL. Se installi ubuntu dall'app store, il comando è ubuntu config --default-user root.
Endy Tjahjono,

2
Sì, questo è un modo alternativo ma ho ottenuto l'errore: Failed to set default user to: root.
Kirby il

2
@Kirby: è necessario disconnettersi dalla shell WSL prima di eseguire il comando nel prompt dei comandi di Windows.
dr01,

1
Ho continuato a ricevere Error: 0x80070057 The parameter is incorrect, quindi ho finito per seguire la battuta di @ dr01 ed eseguito ubuntuin PowerShell, quindi ho logoutconfigurato nuovamente l'utente predefinito. Successo 👍
skia.heliou

2
Se hai installato ubuntu 18.04 su WSL, il comando è ubuntu1804invece di ubuntu. Spero che questo risparmi un po 'di graffi alla testa.
Indominus,

53

Quanto sopra non ha funzionato. Anche dopo aver cambiato l'utente predefinito, Bash si è sempre aperto con il mio utente.

Quindi invece ho fatto questo, che ha funzionato:

  1. Modifica questo file (in notepad o notepad ++):

    %localappdata%\lxss\rootfs\etc\shadow
    
  2. Trova il tuo normale utente, ad esempio:

    user1:$jsdjksadgfhsdf.saflsdf.sadf.safd:17299:0:99999:7:::
    

    e semplicemente rimuovi la parte hash (sotto la parte)

    $jsdjksadgfhsdf.saflsdf.sadf.safd
    

    vedrai un hash diverso - spero :) quindi dovrebbe apparire come:

    user1::17299:0:99999:7:::
    
  3. Salva il file

  4. Riavvia Bash con i privilegi di root e imposta la password

     sudo bash
     passwd <your-user-name> 
    

    Ora puoi impostare una nuova password senza dover inserire la precedente.


9
funziona ma la directory ufficiale è ora simile a% localappdata% \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs \ etc \ shadow
Mauro Destro,

11
Questa è di gran lunga la risposta migliore . Per trovare il percorso del tuo shadowfile puoi usare questo abominio di PowerShell: Get-ChildItem -Path C:\ -Filter shadow -Recurse -ErrorAction SilentlyContinue -Forceche è una versione follemente dettagliata find /mnt/c/ -name shadowsia nell'esecuzione che nei risultati. Non sono necessari privilegi elevati per modificare il file, ma assicurati che la finestra bash sia chiusa prima di farlo.
Russ,

1
Questo è il vincitore! Ha funzionato alla grande quando la prima risposta non ha funzionato.
Kim

1
La risposta accettata mi ha dato "Errore: 0x80070057 Il parametro non è corretto.". (e no, la console non era in modalità legacy). Questo ha funzionato senza problemi;
Cristi Diaconescu,

1
Questa risposta ha funzionato esattamente come indicato sopra. La prima risposta non ha funzionato per me.
Shanemeister,

27

Modifica Questo non funziona più se si dispone di una distribuzione di WSL installata nel negozio.

Per aggiungere alla risposta di Tmu, ecco uno script Powershell ( gist ) che automatizza il processo (incluso il rilevamento automatico dell'attuale nome utente predefinito)

# Resets the password for the default LXSS / WSL bash user
$lxssUsername = (Get-ItemProperty HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss).DefaultUsername
lxrun /setdefaultuser root
bash -c "passwd $lxssUsername"
lxrun /setdefaultuser $lxssUsername

ottenere E rror: 0 x 8 0 0 7 0 0 0 2 in powershell
Nitin Sawant

1

A partire dal 05-09-2019 c'è un processo che è molto più semplice delle risposte esistenti (che per lo più sono così obsolete da non funzionare affatto).

Nel prompt dei comandi dell'amministratore di Windows ( Super+ X, A) è possibile accedere all'account root di Ubuntu con

wsl --user root

Quindi cambia la password come faresti di solito, con

passwd

che ti richiede interattivamente una nuova password (due volte).


0

Per quelli di voi che hanno perso la password di root, ciò che ha funzionato per me, è stato l'aggiornamento a Ubuntu 18.04 LTS tramite Windows Store. Nota, l'archivio di Windows ha due opzioni distinte:

  1. Ubuntu
  2. Ubuntu 18.04 LTS ( scegli questo )

Per verificare la versione corrente, eseguire quanto segue come qualsiasi utente:

Al prompt dei comandi, immettere:

cat /etc/*release

Dovresti vedere una riga nell'output che dice:

DISTRIB_RELEASE=16.01

Se lo vedi, aggiorna definitivamente a 18.04 e ti chiederà di creare nuove credenziali UNIX.

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.