Frage Setzen Sie das Passwort in Linux Bash in Windows zurück


Ich habe die Linux Bash auf Windows 10 installiert (die im letzten Update von Microsoft verfügbar ist), aber es ist lange her, dass ich mein Passwort vergessen habe.

Ich habe viele Websites überprüft und alles, was es sagt, ist, durch die Boot-Option zu gehen, wo es in diesem Fall nicht funktioniert, da dies Windows-System ist.

Wie kann ich mein Passwort zurücksetzen?


132
2018-05-13 22:19


Ursprung


Welches Passwort hast du genau verloren? Ihr Windows-Konto-Passwort? - David Foerster
Ein Beispiel für eine "Boot-Option" wäre, den Einzelbenutzer-Modus zu starten, indem die Kernel-Befehlszeile über "grub" auf "single" gesetzt wird. Für Neugierige. - kevinf


Antworten:


  • Lauf bash und notieren Sie sich Ihren Linux-Benutzernamen (dieser muss nicht mit Ihrem Windows-Benutzernamen übereinstimmen), siehe Wie kann ich meinen Benutzernamen herausfinden?
  • Schließen Sie Bash auf Ubuntu, wenn es ausgeführt wird (oder der nächste Befehl fehlschlägt).
  • In der Windows-Eingabeaufforderung (Super+X, EIN) Ändern Sie den Standardbenutzer in root:

    ubuntu config --default-user root
    

Wenn Sie Ubuntu 18.04 in der WSL verwenden, hat sich der Befehl in geändert ubuntu1804 , damit

ubuntu1804 config --default-user root
  • Jetzt meldet Bash auf Ubuntu unter Windows Sie als root an, ohne nach dem Passwort zu fragen
  • Benutzen passwd Befehl in Bash, um das Benutzerpasswort zu ändern (den Benutzer, dessen Passwort du zurücksetzen möchtest):

    passwd your_username
    
  • Ändern Sie in der Windows-Eingabeaufforderung den Standardbenutzer zurück zu Ihrem normalen Benutzer

    ubuntu config --default-user  your_username
    

Wenn Sie Ubuntu 18.04 in der WSL verwenden, hat sich der Befehl in geändert ubuntu1804 , damit

ubuntu1804 config --default-user your_username

Sehen Sie sich das komplette Video an, um Ihr Passwort wiederherzustellen. Windows Subsystem Linux https://youtu.be/dTR232yvDCE 

Hinweis 1: Das im Video verwendete Subsystem ist nicht Ubuntu, sondern Kali Linux. Daher der Unterschied im Befehl.

Hinweis 2: Wenn Sie immer noch das ursprüngliche Ubuntu-Subsystem verwenden, das mit dem Anniversary Update geliefert wurde, verwenden Sie den Befehl lxrun. Ein Upgrade auf die über Microsoft Store vertriebene Subsystemversion wird empfohlen.)


242
2017-08-05 10:02



lxrun ist für die Beta-Version von WSL. Wenn Sie ubuntu aus dem App Store installieren, lautet der Befehl ubuntu config --default-user root. - Endy Tjahjono
Ja, das ist ein alternativer Weg, aber ich habe den Fehler: Failed to set default user to: root. - Kirby
@Kirby: Sie müssen sich von der WSL-Shell abmelden, bevor Sie den Befehl in der Windows-Eingabeaufforderung ausführen. - dr01
Ich habe "ubuntu config --default-user root" ausprobiert und einen Fehler erhalten, der besagt, dass "ubuntu nicht als interner oder externer Befehl, ausführbares Programm oder Batch-Datei erkannt wird". - Indominus
Ich habe es immer verstanden Error: 0x80070057 The parameter is incorrectAlso bin ich dem @ dr01 's Stichwort gefolgt und gelaufen ubuntuin PowerShell dann logout, dann den Standardbenutzer erneut konfiguriert. Erfolg - skia.heliou


Das obige hat nicht funktioniert. Auch nach dem Ändern des Standardbenutzers hat sich die Bash immer mit meinem Benutzer geöffnet. Also das hat funktioniert:

  1. Datei bearbeiten (in Notepad oder Notepad ++):

    %localappdata%\lxss\rootfs\etc\shadow
    
  2. finde deinen normalen Benutzer, zum Beispiel:

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

    und entfernen Sie einfach den Hash-Teil (unter dem Teil)

    $jsdjksadgfhsdf.saflsdf.sadf.safd
    

    Du wirst einen anderen Hash sehen - ich hoffe :), sollte also so aussehen:

    user1::17299:0:99999:7:::
    
  3. Speicher die Datei

  4. fang wieder an zu bash
  5. Sudo Bash
  6. Passwort Dies wird nach Ihrem neuen Passwort fragen, ohne dass vorher ein Passwort benötigt wird.

27
2018-05-13 15:59



Das funktioniert, aber das offizielle Verzeichnis ist jetzt ähnlich wie% localappdata% \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs \ etc \ shadow - Mauro Destro
Dies ist die beste Antwort bei weitem. Um den Weg zu Ihrem zu finden shadow Datei können Sie diese PowerShell-Monstrosität verwenden: Get-ChildItem -Path C:\ -Filter shadow -Recurse -ErrorAction SilentlyContinue -Force Das ist eine wahnsinnig ausführliche Version von find /mnt/c/ -name shadow sowohl in der Ausführung als auch in den Ergebnissen. Sie brauchen keine erhöhten Rechte, um die Datei zu bearbeiten, aber stellen Sie sicher, dass Ihr bash-Fenster geschlossen ist, bevor Sie es tun. - Russ
Das ist der Gewinner! Hat super funktioniert, als die erste Antwort nicht war. - Kim
Die angenommene Antwort hat mich 'Fehler: 0x80070057 Der Parameter ist falsch.'. (Und nein, die Konsole war nicht im Legacy-Modus). Dies funktionierte nahtlos; - Cristi Diaconescu
versuche, die lxss zu finden, aber es sagt Windows can't find 'C:\Users\longnx\AppData\Local\lxss'. Check the spelling and try again. - Luke


Um Tmus Antwort hinzuzufügen, hier ist ein Powershell-Skript (Kern) das den Prozess automatisiert (einschließlich der automatischen Erkennung des aktuellen Standardbenutzernamens)

# 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

21
2018-06-06 23:52