Resetujte heslo v systému Linux Bash v systému Windows

133

Nainstaloval jsem systém Linux Bash v systému Windows 10 (který je k dispozici v poslední aktualizaci od společnosti Microsoft), ale už je to dlouho, co jsem už nyní zapomněl heslo.

Zkontroloval jsem mnoho webových stránek a vše, co říká, je projít možností zavádění, kde to nebude fungovat, protože je to systém Windows.

Jak mohu obnovit heslo?

    
dané Maheedhar K V 14.05.2016 00:19

3 odpovědi

247
  • Spusťtebash a poznamenejte si své uživatelské jméno pro Linux (toto nemusí odpovídat uživatelskému jménu systému Windows), viz Jak mohu najít Mé uživatelské jméno?
  • Zavřete Bash na Ubuntu, pokud je spuštěn (nebo se další příkaz nezdaří)
  • V příkazovém řádku systému Windows ( Super + X , A ) změňte výchozí uživatele na root:

    ubuntu config --default-user root
    

Pokud používáte Ubuntu 18.04 v WSL, změnil se příkaz naubuntu1804, takže

ubuntu1804 config --default-user root
  • Nyní Bash na Ubuntu v systému Windows vás přihlásí jako root bez zadání hesla
  • Chcete-li změnit uživatelské heslo (uživatel, jehož heslo chcete obnovit), použijte příkazpasswd v Bash:

    passwd your_username
    
  • Změňte výchozího uživatele zpět na běžného uživatele v příkazovém řádku systému Windows

    ubuntu config --default-user  your_username
    

Pokud používáte Ubuntu 18.04 v WSL, změnil se příkaz naubuntu1804, takže

ubuntu1804 config --default-user your_username

Sledujte plné video k obnovení hesla Podsystém systému Windows Linux Odkaz

Poznámka 1: Subsystém používaný ve videu není Ubuntu, ale Kali Linux. Rozdíl v příkazu.

Poznámka 2: Pokud stále používáte původní podsystém Ubuntu, který byl dodán s aktualizací Anniversary, použijte příkaz lxrun . Je doporučeno upgradovat na verzi subsystému distribuovanou prostřednictvím služby Microsoft Store.)

    
odpověděl Tmu 05.08.2016 12:02
28

Výše ​​uvedené nefungovalo. I po změně výchozího uživatele se bash vždy otevřel u mého uživatele. Místo toho to fungovalo:

  1. upravovat soubor (v poznámkovém bloku nebo zápisníku ++):

    %localappdata%\lxss\rootfs\etc\shadow
    
  2. najděte běžného uživatele, například:

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

    a jednoduše odstraňte část hash (pod částí)

    $jsdjksadgfhsdf.saflsdf.sadf.safd
    

    uvidíte jiný hash - doufám :), takže by měl vypadat jako:

    user1::17299:0:99999:7:::
    
  3. Uložte soubor

  4. znovu spusťte bash
  5. Sudo bash
  6. heslo bude to vyžadovat nové heslo bez předchozího.
odpověděl Vladimir Jirasek 13.05.2017 17:59
21

Chcete-li přidat odpověď Tmu, je zde skript Powershell ( seznam ), který automatizuje proces (včetně automatického zjišťování aktuálního výchozí uživatelské jméno)

# 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
    
odpověděl Richard Szalay 07.06.2017 01:52