Setzen Sie das Passwort in Ubuntu / Linux Bash unter Windows zurück

191

Ich habe Linux Bash unter Windows 10 (bei Microsoft erhältlich) installiert, aber mein Passwort vergessen.

Ich habe nach einer Lösung gesucht, finde aber nur Vorschläge, die vor dem Systemstart ausgeführt werden müssen, z. B. den Zugriff auf den Wiederherstellungsmodus. In diesem Fall funktioniert dies jedoch nicht, da Ubuntu nur eine Anwendung innerhalb eines Windows-Systems ist und keine hat einen eigenen Bootprozess.

Wie kann ich mein Passwort zurücksetzen?

Maheedhar KV
quelle
4
Welches Passwort hast du genau verloren? Ihr Windows Account Passwort?
David Foerster
Ein Beispiel für eine "Boot-Option" wäre das Booten in den Einzelbenutzermodus, indem Kernel-Cmdline über Grub auf "Single" gesetzt wird. Für die Neugierigen.
Kevinf
1
In WSL2 (Windows 10 v1903) wurde es geändert. Starten Sie in cmd oder powershell eine Ubuntu-Shell als root: wsl -user root Dann: passwd <Ihr Benutzername>. Ausfahrt wsl. Das nächste Mal wird Ubuntu Shel geöffnet: sudo ls akzeptiert ein neues root-Passwort.
9.

Antworten:

323
  • Führen bashSie Ihren Linux-Benutzernamen aus und notieren Sie ihn (er muss nicht mit Ihrem Windows-Benutzernamen übereinstimmen). Siehe Wie kann ich meinen Benutzernamen herausfinden?
  • Schließen Sie Bash unter Ubuntu, wenn es ausgeführt wird (oder der nächste Befehl schlägt fehl).
  • Ändern Sie in der Windows-Administrator-Eingabeaufforderung ( Super+ X, A) den Standardbenutzer in root:

    ubuntu config --default-user root
    

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

ubuntu1804 config --default-user root
  • Jetzt meldet sich Bash unter Ubuntu unter Windows als root an, ohne nach dem Passwort zu fragen
  • Verwenden Sie den passwdBefehl in Bash, um das Benutzerkennwort zu ändern (den Benutzer, dessen Kennwort Sie zurücksetzen möchten):

    passwd your_username
    
  • Ändern Sie den Standardbenutzer in der Windows-Eingabeaufforderung wieder in Ihren normalen Benutzer

    ubuntu config --default-user  your_username
    

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

ubuntu1804 config --default-user your_username

Sehen Sie sich das vollständige Video an, um Ihr Kennwort 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.)

Tmu
quelle
7
lxrunist für die Beta-Version der WSL. Wenn Sie Ubuntu aus dem App Store installieren, lautet der Befehl ubuntu config --default-user root.
Endy Tjahjono
2
Ja, das ist eine alternative Art und Weise , aber ich habe den Fehler: Failed to set default user to: root.
Kirby
2
@Kirby: Sie müssen sich von der WSL-Shell abmelden, bevor Sie den Befehl in der Windows-Eingabeaufforderung ausführen können.
dr01
1
Ich bekam es immer wieder Error: 0x80070057 The parameter is incorrect, also folgte ich @ dr01s Stichwort und lief ubuntuin PowerShell logout, dann konfigurierte ich den Standardbenutzer erneut. Erfolg 👍
skia.heliou
2
Wenn Sie Ubuntu 18.04 auf WSL installiert haben, lautet der Befehl ubuntu1804statt ubuntu. Ich hoffe, das erspart ein bisschen Kopfkratzen.
Indominus
53

Das oben genannte hat nicht funktioniert. Auch nach dem Ändern des Standardbenutzers wurde Bash immer mit meinem Benutzer geöffnet.

Also tat ich stattdessen Folgendes:

  1. Bearbeiten Sie diese Datei (in Notepad oder Notepad ++):

    %localappdata%\lxss\rootfs\etc\shadow
    
  2. Finden Sie Ihren normalen Benutzer, zum Beispiel:

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

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

    $jsdjksadgfhsdf.saflsdf.sadf.safd
    

    Sie werden einen anderen Hash sehen - ich hoffe :) so sollte es aussehen:

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

  4. Starten Sie Bash erneut mit root-Rechten und legen Sie Ihr Passwort fest

     sudo bash
     passwd <your-user-name> 
    

    Sie können jetzt ein neues Passwort festlegen, ohne das vorherige eingeben zu müssen.

Vladimir Jirasek
quelle
9
Dies funktioniert, aber das offizielle Verzeichnis ähnelt jetzt% localappdata% \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs \ etc \ shadow
Mauro Destro
11
Dies ist mit Abstand die beste Antwort . Um den Pfad zu Ihrer shadowDatei zu finden, können Sie diesen PowerShell-Gräuel verwenden: Dies Get-ChildItem -Path C:\ -Filter shadow -Recurse -ErrorAction SilentlyContinue -Forceist eine wahnsinnig ausführliche Version von find /mnt/c/ -name shadowsowohl in der Ausführung als auch in den Ergebnissen. Zum Bearbeiten der Datei sind keine erhöhten Berechtigungen erforderlich. Stellen Sie jedoch sicher, dass Ihr Bash-Fenster geschlossen ist, bevor Sie dies tun.
Russ
1
Das ist der Gewinner! Hat super geklappt, als die erste Antwort nicht kam.
Kim
1
Die akzeptierte Antwort brachte mich auf "Fehler: 0x80070057 Der Parameter ist falsch.". (und nein, die Konsole war nicht im Legacy-Modus). Dies funktionierte reibungslos.
Cristi Diaconescu
1
Diese Antwort funktionierte genau wie oben beschrieben. Die erste Antwort hat bei mir nicht funktioniert.
Shanemeister
27

Bearbeiten Dies funktioniert nicht mehr, wenn Sie eine im Geschäft installierte Distribution von WSL haben.

Um die Antwort von Tmu zu ergänzen, gibt es hier ein Powershell-Skript ( gist ), 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
Richard Szalay
quelle
Fehler bekommen: 0 x 8 0 0 7 0 0 0 2 in Powershell
Nitin Sawant
1

Ab dem 05.09.2019 gibt es einen Prozess, der viel einfacher ist als die vorhandenen Antworten (die meistens so veraltet sind, dass sie überhaupt nicht funktionieren).

In der Windows-Admin-Eingabeaufforderung ( Super+ X, A) können Sie sich mit beim Ubuntu-Root-Konto anmelden

wsl --user root

Dann ändern Sie das Passwort wie gewohnt mit

passwd

die Sie interaktiv nach einem neuen Passwort fragt (zweimal).

Niemand
quelle
0

Für diejenigen unter Ihnen, die das root-Passwort verloren haben, funktionierte das Update auf Ubuntu 18.04 LTS über den Windows Store. Beachten Sie, dass der Windows Store zwei verschiedene Optionen hat:

  1. Ubuntu
  2. Ubuntu 18.04 LTS ( Wählen Sie diese )

Führen Sie die folgenden Schritte aus, um Ihre aktuelle Version zu überprüfen:

Geben Sie an der Eingabeaufforderung Folgendes ein:

cat /etc/*release

Sie sollten eine Zeile in der Ausgabe sehen, die besagt:

DISTRIB_RELEASE=16.01

Wenn Sie das sehen, aktualisieren Sie auf jeden Fall auf 18.04 und Sie werden aufgefordert, neue UNIX-Anmeldeinformationen zu erstellen.

Janac Meena
quelle