Сбросить пароль в 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 всегда открывался с моим пользователем.
Так что вместо этого я сделал это, который работал:
Отредактируйте этот файл (в блокноте или блокноте ++):
%localappdata%\lxss\rootfs\etc\shadow
Найдите вашего обычного пользователя, например:
user1:$jsdjksadgfhsdf.saflsdf.sadf.safd:17299:0:99999:7:::
и просто удалите часть хеша (нижняя часть)
$jsdjksadgfhsdf.saflsdf.sadf.safd
Вы увидите другой хэш - я надеюсь:), так это должно выглядеть так:
user1::17299:0:99999:7:::
Сохранить файл
Запустите 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 есть две разные опции:
- Ubuntu
- Ubuntu 18.04 LTS (выберите это)
Чтобы проверить текущую версию, запустите следующее от имени любого пользователя:
cat /etc-*release
Вы должны увидеть строку в выводе, которая говорит:
DISTRIB_RELEASE=16.01
Если вы видите это, то обязательно обновитесь до 18.04, и он предложит вам создать новые учетные данные UNIX.