Vraag Reset het wachtwoord in Linux Bash in Windows


Ik heb de Linux Bash op Windows 10 geïnstalleerd (die beschikbaar is in de recente update van Microsoft), maar het is lang geleden dat ik toevallig mijn wachtwoord ben vergeten.

Ik heb vele websites gecontroleerd en het zegt alleen dat het de opstartoptie moet gebruiken, waar het in dit geval niet werkt, omdat dit Windows-systeem is.

Hoe kan ik mijn wachtwoord resetten?


132
2018-05-13 22:19


oorsprong


Welk wachtwoord ben je precies kwijt? Het wachtwoord van uw Windows-account? - David Foerster
een voorbeeld van een "opstartoptie" zou zijn om naar de enkele gebruikersmodus te booten door kernel cmdline via grub in te stellen op "single". Voor die nieuwsgierigen. - kevinf


antwoorden:


  • Rennen bash en noteer je Linux-gebruikersnaam (dit hoeft niet overeen te komen met je Windows-gebruikersnaam), zie Hoe kan ik mijn gebruikersnaam achterhalen?
  • Sluit Bash op Ubuntu als het draait (of de volgende opdracht zal mislukken).
  • In Windows admin opdrachtprompt (Super+X, EEN) verander de standaard gebruiker in root:

    ubuntu config --default-user root
    

Als u Ubuntu 18.04 in WSL gebruikt, is de opdracht gewijzigd in ubuntu1804 , dus

ubuntu1804 config --default-user root
  • Nu Bash op Ubuntu op Windows logt u in als root zonder een wachtwoord te vragen
  • Gebruik passwd commando in Bash om het gebruikerswachtwoord te wijzigen (de gebruiker wiens wachtwoord je wilt resetten):

    passwd your_username
    
  • Wijzig de standaardgebruiker terug naar uw normale gebruiker in de opdrachtprompt van Windows

    ubuntu config --default-user  your_username
    

Als u Ubuntu 18.04 in WSL gebruikt, is de opdracht gewijzigd in ubuntu1804 , dus

ubuntu1804 config --default-user your_username

Bekijk Full Video om je wachtwoord te herstellen Windows Subsystem Linux https://youtu.be/dTR232yvDCE 

Opmerking 1: Het subsysteem dat in de video wordt gebruikt, is niet Ubuntu, maar Kali Linux. Vandaar het verschil in de opdracht.

Opmerking 2: Gebruik de opdracht als u nog steeds het originele Ubuntu-subsysteem gebruikt dat bij de jubileumupdate is geleverd lxrun. Een upgrade naar de subsysteemversie die wordt gedistribueerd via Microsoft Store wordt aanbevolen.)


242
2017-08-05 10:02



lxrun is voor bètaversie van WSL. Als u ubuntu installeert vanuit de app store, is de opdracht ubuntu config --default-user root. - Endy Tjahjono
Ja, dit is een alternatieve manier, maar ik kreeg de foutmelding: Failed to set default user to: root. - Kirby
@Kirby: u moet uitloggen bij de WSL-shell voordat u de opdracht in de Windows-opdrachtprompt uitvoert. - dr01
Ik heb geprobeerd "ubuntu config --default-user root", en kreeg een foutmelding: "ubuntu wordt niet herkend als een interne of externe opdracht, bedienbaar programma of batchbestand" - Indominus
Ik bleef krijgen Error: 0x80070057 The parameter is incorrect, dus ik volgde de cue van @ dr01 en rende weg ubuntuin PowerShell dan logout, en vervolgens de standaardgebruiker opnieuw geconfigureerd. Succes - skia.heliou


Het bovenstaande werkte niet. Zelfs na het veranderen van de standaard gebruiker, de bash altijd geopend met mijn gebruiker. Dus in plaats daarvan werkte dit:

  1. bestand bewerken (in Kladblok of Notepad ++):

    %localappdata%\lxss\rootfs\etc\shadow
    
  2. zoek je normale gebruiker, bijvoorbeeld:

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

    en verwijder eenvoudig het hashgedeelte (onder deel)

    $jsdjksadgfhsdf.saflsdf.sadf.safd
    

    je zult een andere hash zien - ik hoop :), dus zou het moeten lijken op:

    user1::17299:0:99999:7:::
    
  3. Bewaar het bestand

  4. start bash opnieuw
  5. sudo bash
  6. wachtwoord dit vraagt ​​om je nieuwe wachtwoord zonder dat je een nieuw wachtwoord nodig hebt.

27
2018-05-13 15:59



dit werkt, maar de officiële map is nu vergelijkbaar met% localappdata% \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs \ etc \ shadow - Mauro Destro
Dit is het beste antwoord verreweg. Om het pad naar jouw te vinden shadow bestand kun je deze PowerShell-gruwel gebruiken: Get-ChildItem -Path C:\ -Filter shadow -Recurse -ErrorAction SilentlyContinue -Force wat een waanzinnig uitgebreide versie is van find /mnt/c/ -name shadow zowel in uitvoering als in resultaten. Geen behoefte aan verhoogde rechten om het bestand te bewerken, maar zorg ervoor dat je bash-venster gesloten is voordat je het doet. - Russ
Dit is de winnaar! Werkte geweldig toen het eerste antwoord dat niet deed. - Kim
Het geaccepteerde antwoord gaf me 'Fout: 0x80070057 De parameter is onjuist.'. (en nee, de console bevond zich niet in de legacy-modus). Dit werkte naadloos; - Cristi Diaconescu
probeer het lxss te vinden, maar het zegt Windows can't find 'C:\Users\longnx\AppData\Local\lxss'. Check the spelling and try again. - Luke


Om aan het antwoord van Tmu toe te voegen, hier is een Powershell-script (kern) die het proces automatiseert (inclusief het automatisch detecteren van de huidige standaard gebruikersnaam)

# 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