Скидання пароля в Ubuntu / Linux Bash в Windows


191

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

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

Як я можу скинути свій пароль?


4
Який пароль ви точно загубили? Ваш пароль облікового запису Windows?
Девід Фоерстер

Прикладом "параметра завантаження" може бути завантаження в режимі одного користувача, встановивши cmdline ядра на "єдиний" через grub. Для тих, хто цікавиться.
kevinf

1
У WSL2 (windows 10 v1903) його змінено. З cmd або powershell запустіть оболонку ubuntu як корінь: wsl-root root Потім: passwd <ваше ім'я користувача>. вихід wsl. Наступного разу, коли відкриється шебу для ubuntu: sudo ls прийме новий корінний пароль.
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 on 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 https://youtu.be/dTR232yvDCE

Примітка 1: Підсистема, яка використовується у відео, - це не Ubuntu, а Kali Linux. Звідси різниця в команді.

Примітка 2: Якщо ви все ще використовуєте оригінальну підсистему Ubuntu, що постачається з оновленням ювілею, використовуйте команду lxrun . Рекомендується оновити до версії підсистеми, що поширюється через Microsoft Store.)


7
lxrunпризначений для бета-версії WSL. Якщо ви встановите ubuntu з магазину додатків, команда така ubuntu config --default-user root.
Endy Tjahjono

2
Так, це альтернативний спосіб , але я отримав помилку: Failed to set default user to: root.
Кірбі

2
@Kirby: перед тим, як запустити команду в командному рядку Windows, ви повинні вийти з оболонки WSL.
dr01

1
Я продовжував отримувати Error: 0x80070057 The parameter is incorrect, тому я в кінцевому підсумку слідував за сигналом @ dr01 і біг ubuntuу PowerShell, потім logoutзнову налаштував користувача за замовчуванням. Успіх 👍
skia.heliou

2
Якщо ви встановили ubuntu 18.04 на WSL, команда ubuntu1804замість ubuntu. Сподіваюсь, це заощадить чубати голову.
Indominus

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 знову з правами root і встановіть свій пароль

     sudo bash
     passwd <your-user-name> 
    

    Тепер ви можете встановити новий пароль, не вводячи попередній.


9
це працює, але офіційний каталог зараз схожий на% localappdata% \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs \ тощо \ 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.

Щоб додати відповідь Тму, ось сценарій ( gist ) Powershell, який автоматизує процес (включаючи автоматично виявлення поточного імені користувача за замовчуванням)

# 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

отримання E rror: 0 x 8 0 0 7 0 0 0 2 в повному складі
Нітін Сован

1

Станом на 2019-09-05 є процес, який набагато простіший, ніж існуючі відповіді (які здебільшого настільки застаріли, що взагалі не працюють).

У командному рядку адміністратора Windows ( Super+ X, A) ви можете увійти до кореневого облікового запису Ubuntu за допомогою

wsl --user root

Потім змініть пароль, як зазвичай, з

passwd

який інтерактивно запитує вас про новий пароль (двічі).


0

Для тих, хто втратив кореневий пароль, те, що для мене працювало, було оновлено до 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.