Сбросить пароль в Ubuntu / Linux Bash в Windows


191

Я установил Linux Bash на Windows 10 (доступно от Microsoft), но я забыл свой пароль.

Я искал решение, но я нахожу только предложения, которые предполагают выполнение каких-либо действий перед загрузкой системы, например, доступ к режиму восстановления, но в этом случае это не сработает, поскольку эта Ubuntu является просто приложением в системе Windows и не имеет свой собственный процесс загрузки.

Как я могу сбросить свой пароль?


4
Какой пароль вы точно потеряли? Пароль вашей учетной записи Windows?
— Дэвид Фёрстер

Примером «варианта загрузки» может быть загрузка в однопользовательском режиме, установив для cmdline ядра значение «single» через grub. Для любопытных.
— Кевинф

1
В WSL2 (windows 10 v1903) его изменили. Из cmd или powershell запустите оболочку ubuntu от имени пользователя root: wsl -user root. Затем: passwd <ваше имя пользователя>. выход из WSL. В следующий раз, когда откроется Ubuntu shel: sudo ls примет новый пароль root.
— JDH

Ответы:


323
  • Запустите bashи запишите свое имя пользователя в Linux (оно не должно совпадать с именем пользователя в Windows), см. Как я могу узнать свое имя пользователя?
  • Закройте Bash в Ubuntu, если он работает (или следующая команда не будет выполнена).
  • В командной строке администратора Windows ( Super+ X, A) измените пользователя по умолчанию на root:

    ubuntu config --default-user root
    

Если вы используете Ubuntu 18.04 в WSL, команда изменилась на ubuntu1804, поэтому

ubuntu1804 config --default-user root
  • Теперь Bash на Ubuntu в Windows регистрирует вас как root, не спрашивая пароль
  • Используйте passwdкоманду в Bash для изменения пароля пользователя (пользователя, пароль которого вы хотите сбросить):

    passwd your_username
    
  • Измените пользователя по умолчанию обратно на обычного пользователя в командной строке Windows

    ubuntu config --default-user  your_username
    

Если вы используете Ubuntu 18.04 в WSL, команда изменилась на ubuntu1804, поэтому

ubuntu1804 config --default-user your_username

Смотрите полное видео, чтобы восстановить ваш пароль Подсистема Windows Linux https://youtu.be/dTR232yvDCE

Примечание 1: Подсистема, используемая в видео, не Ubuntu, а Kali Linux. Отсюда и разница в команде.

Примечание 2: Если вы все еще используете исходную подсистему Ubuntu, поставляемую с Anniversary Update, используйте команду lxrun . Рекомендуется обновить до версии подсистемы, распространяемой через Microsoft Store.)


7
lxrunдля бета-версии WSL. Если вы устанавливаете Ubuntu из магазина приложений, команда ubuntu config --default-user root.
— Энди Тяхджоно

2
Да, это альтернативный способ, но я получил ошибку Failed to set default user to: root.
— Кирби

2
@Kirby: необходимо выйти из оболочки WSL перед запуском команды в командной строке Windows.
— Dr01

1
Я продолжал получать Error: 0x80070057 The parameter is incorrect, поэтому я в конечном итоге следовал подсказке @ dr01 и запустил ubuntuPowerShell, затем logoutснова настроил пользователя по умолчанию. Успех 👍
— skia.heliou

2
Если вы установили Ubuntu 18.04 на WSL, команда ubuntu1804вместо ubuntu. Надеюсь, это спасет от царапин на голове.
— Индоминус

53

Выше не сработало. Даже после смены пользователя по умолчанию Bash всегда открывался с моим пользователем.

Так что вместо этого я сделал это, который работал:

  1. Отредактируйте этот файл (в блокноте или блокноте ++):

    %localappdata%\lxss\rootfs\etc\shadow
    
  2. Найдите вашего обычного пользователя, например:

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

    и просто удалите часть хеша (нижняя часть)

    $jsdjksadgfhsdf.saflsdf.sadf.safd
    

    Вы увидите другой хэш - я надеюсь :), так это должно выглядеть так:

    user1::17299:0:99999:7:::
    
  3. Сохранить файл

  4. Запустите Bash снова с правами суперпользователя и установите свой пароль

     sudo bash
     passwd <your-user-name> 
    

    Теперь вы можете установить новый пароль без необходимости ввода предыдущего.


9
это работает, но официальный каталог теперь похож на% localappdata% \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs \ etc \ shadow
— Mauro Destro

11
Это лучший ответ на сегодняшний день . Чтобы найти путь к вашему shadowфайлу, вы можете использовать эту мерзость PowerShell: Get-ChildItem -Path C:\ -Filter shadow -Recurse -ErrorAction SilentlyContinue -Forceбезумно многословную версию find /mnt/c/ -name shadowкак в исполнении, так и в результатах. Нет необходимости в повышенных привилегиях для редактирования файла, но убедитесь, что ваше окно bash закрыто, прежде чем вы это сделаете.
— Расс

1
Это победитель! Отлично работал, когда первый ответ не.
— Ким

1
Принятый ответ получил меня «Ошибка: 0x80070057 Параметр неверен.». (и нет, консоль не была в прежнем режиме). Это работало без проблем;
— Кристи Диаконеску

1
Этот ответ работал именно так, как указано выше. Первый ответ не работал для меня.
— Шанемейстер

27

Изменить Это больше не работает, если у вас есть установленный в магазине дистрибутив WSL.

Чтобы добавить к ответу Tmu, вот скрипт Powershell ( gist ), который автоматизирует процесс (включая автоматическое определение текущего имени пользователя по умолчанию)

# 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

получить ошибку: 0 x 8 0 0 7 0 0 0 2 в powershell
— Нитин Савант

1

По состоянию на 2019-09-05 существует процесс, который намного проще, чем существующие ответы (которые в основном настолько устарели, что вообще не работают).

В командной строке администратора Windows ( Super+ X, A) вы можете войти в корневую учетную запись Ubuntu с помощью

wsl --user root

Затем измените пароль, как обычно, с

passwd

который в интерактивном режиме запрашивает у вас новый пароль (дважды).


0

Для тех из вас, кто потерял пароль root, у меня работало обновление до Ubuntu 18.04 LTS через Windows Store. Обратите внимание, что в магазине Windows есть две разные опции:

  1. Ubuntu
  2. Ubuntu 18.04 LTS ( выберите это )

Чтобы проверить текущую версию, запустите следующее от имени любого пользователя:

В командной строке введите:

cat /etc/*release

Вы должны увидеть строку в выводе, которая говорит:

DISTRIB_RELEASE=16.01

Если вы видите это, то обязательно обновитесь до 18.04 , и он предложит вам создать новые учетные данные UNIX.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.