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

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

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

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

7 ответов

  • Бежать 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.)

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

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

wsl --user root

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

passwd

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

Выше не сработало. Даже после смены пользователя по умолчанию 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> 
    

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

Чтобы добавить к ответу 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

Мне нужно было сбросить пароль также в моей Windows 10, у меня есть WLS 1

1- Проверьте ваше имя в Linux/ Ubuntu, перечислив папку:

%userprofile%\AppData\Local\Microsoft\WindowsApps

В моем случае я нашел Ubuntu1604.exe, поэтому я буду использовать ubuntu1604 как имя для следующего шага.

2- Откройте CMD с правами администратора и запустите (вы ничего не получите взамен):

ubuntu1604 config --default-user root

3- Запустите ваш WSL, убедитесь, что вы получаете права root или запустите whoami (вам нужно быть пользователем root) и измените свой пароль с помощью:

passwd [your-linux-username]

4- Закройте ваш WSL и вернитесь в окно CMD и верните имя пользователя Linux по умолчанию:

ubuntu1604 config --default-user [your-linux-username]

5- Запустите ваш WSL/Ubuntu/AnotherLinux снова, проверьте и наслаждайтесь.

Другие ответы здесь, хотя и в основном верны, очень сложны. Чтобы изменить свой пароль пользователя в любом дистрибутиве WSL, просто:

Изнутри Ubuntu (или другого дистрибутива):

      wsl.exe \~ -u root -d $WSL_DISTRO_NAME -e passwd $USER

*Требуется, чтобы WSL Interop был включен.

Или из PowerShell или CMD (как обычный пользователь без прав администратора):

      wsl ~ -u root -e passwd <username>
# Add the -d <distro_name> if not using the default distro

*Не требует WSL Interop.

Для тех из вас, кто потерял пароль 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.

Другие вопросы по тегам