Скидання пароля в 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.