n1ro°
RU

Текст и данные · Инструкция

Как сбросить забытый пароль WSL

Как сбросить забытый пароль WSL — задача проще, чем кажется: пароль Linux не связан с PIN или паролем учётной записи.

Редакция N1RO · Проверено

Короткий ответ

Пошаговый сброс забытого Linux-пароля в WSL через root: как выбрать дистрибутив, найти пользователя, выполнить passwd и проверить sudo.

Как понять, какой пароль вы забыли

Внутри WSL действует отдельная система пользователей Linux. Именно этот пароль запрашивает sudo, когда вы устанавливаете пакеты или меняете системные файлы. Ввод при запросе sudo визуально не отображается: ни звёздочек, ни точек, поэтому пустая строка на экране сама по себе не означает, что клавиатура не работает. Если не принимается PIN Windows, это нормально — PIN Windows Hello вообще не обязан совпадать с UNIX-паролем. Сначала проверьте имя нужного дистрибутива командой `wsl -l -v` в PowerShell. Если установлено несколько систем, важно работать именно с той, где находится забытый пароль, иначе вы успешно смените пароль в другой Ubuntu и проблема останется.

Важно: Перед сбросом не удаляйте дистрибутив и не нажимайте Unregister: эта операция удаляет его файловую систему.

Сброс пароля через root

  1. 1. Откройте PowerShell или Windows Terminal. 2. Выполните `wsl -l -v` и запомните точное имя дистрибутива, например `Ubuntu`. 3. Запустите его от root: `wsl -d Ubuntu -u root`. Для дистрибутива по умолчанию достаточно `wsl -u root`. 4. Если не помните имя Linux-пользователя, посмотрите каталоги командой `ls /home` или выполните `getent passwd | grep /home`. 5. Смените пароль: `passwd username`, подставив своё имя. Новый пароль нужно ввести дважды; символы при вводе снова не показываются. 6. Введите `exit`, закройте root-сессию и запустите WSL обычным способом. 7. Проверьте `sudo -v`: система должна принять новый пароль.

Предупреждение: Команда `passwd username` меняет пароль конкретной Linux-учётной записи. Не используйте `passwd` без имени, если вы вошли как root: так вы измените пароль root, а не своего пользователя.

Если в системе несколько пользователей

На рабочих машинах в одном дистрибутиве нередко есть личный пользователь, сервисные учётные записи и root. Каталог `/home` помогает увидеть обычных пользователей, но не является абсолютным списком: домашний каталог можно разместить в другом месте. Более надёжная проверка — `getent passwd`, где видны имя, UID и домашний путь. После сброса убедитесь, что входите под ожидаемым пользователем командой `whoami`. Если WSL постоянно стартует под root, пароль вы уже восстановили, но отдельно нужно вернуть корректного пользователя по умолчанию. Для магазинных дистрибутивов это может настраиваться через launcher, а для импортированных — через секцию `[user]` в `/etc/wsl.conf`. Это отдельная настройка и не требует повторного сброса пароля.

Совет: Сначала восстановите доступ, затем меняйте пользователя по умолчанию. Так проще отличить проблему пароля от проблемы конфигурации запуска.

Что делать при разных симптомах

  • sudo пишет “Sorry, try again” | Убедиться, что вводится Linux-пароль текущего пользователя; при необходимости сбросить его через root
  • PowerShell запускает не ту Ubuntu | Указать дистрибутив явно: `wsl -d <Name> -u root`
  • После смены пароля WSL всё равно входит как root | Проверить пользователя по умолчанию, это отдельная настройка
  • Не видно символов при вводе пароля | Это нормальное поведение терминала Linux; ввод продолжать и нажать Enter
  • Имя пользователя забыто | Проверить `ls /home`, `getent passwd`, затем `whoami` после обычного запуска

Когда пароль не является причиной

Если root-сессия не стартует, дистрибутив падает сразу после запуска или PowerShell сообщает ошибку виртуализации, смена пароля не поможет. В таком случае сначала проверяют состояние WSL командой `wsl --status`, версию — `wsl --version`, а конкретный дистрибутив — `wsl -l -v`. Ошибки файловой системы, повреждённый VHDX, отключённые компоненты виртуализации и сетевые проблемы относятся к другим сценариям. Не стоит экспортировать и импортировать систему только ради пароля: официальный механизм запуска от root специально позволяет восстановить учётную запись без переноса данных. Если вы используете корпоративный образ с изменённой политикой PAM или каталогом пользователей, локальная команда passwd может быть не единственным источником аутентификации — тогда учитывайте правила этого образа.

Контроль после восстановления

  • `whoami` показывает нужного пользователя
  • `sudo -v` принимает новый пароль
  • обычный запуск WSL не открывает root без причины
  • проекты и домашний каталог на месте
  • пароль не совпадает автоматически с Windows PIN — это ожидаемо

Что зафиксировать после восстановления доступа

После успешного сброса полезно записать имя дистрибутива и Linux-пользователя, особенно если на компьютере несколько Ubuntu, Debian или импортированных окружений. Пароль лучше хранить в менеджере паролей, а не пытаться сделать его совпадающим с PIN Windows: это разные механизмы аутентификации и разные границы доступа. Если дистрибутив используется из VS Code, Docker или автоматических скриптов, после смены пароля проверьте команды с sudo именно из рабочего сценария, а не только в отдельном терминале. Смена локального пароля не обновляет секреты, которые могли быть отдельно записаны в скриптах, CI-задачах или службах. При корпоративной интеграции с LDAP, Kerberos или другим централизованным каталогом локальный `passwd` может не быть окончательным источником учётных данных. В таком окружении сначала подтвердите, какой механизм реально проверяет пользователя, чтобы не маскировать проблему локальным сбросом.

Почему лучше сбрасывать пароль, а не переустанавливать дистрибутив

Сброс через root затрагивает только учётные данные выбранного Linux-пользователя и поэтому намного безопаснее переустановки ради одной забытой комбинации. Перед командой `passwd` полезно подтвердить два идентификатора: имя дистрибутива через `wsl -l -v` и имя пользователя внутри Linux. Если в `/home` несколько каталогов, не угадывайте: `getent passwd` покажет записи учётных записей, а после обычного запуска `whoami` подтвердит фактического пользователя. Для дистрибутива не по умолчанию всегда указывайте `-d <DistroName>`, иначе можно изменить пароль в другой системе и решить, что процедура не сработала. После успешного `passwd` не требуется перезагрузка Windows: достаточно выйти из root-сессии, открыть нужный дистрибутив обычным способом и проверить `sudo -v`. Если sudo всё равно отклоняет пароль, сначала убедитесь, что вы вошли именно под той учётной записью, которой меняли пароль. Такой порядок сохраняет проекты, пакеты и настройки дистрибутива и одновременно даёт понятную контрольную точку на каждом шаге.

Что учитывать

Сброс через root затрагивает только учётные данные выбранного Linux-пользователя и поэтому намного безопаснее переустановки ради одной забытой комбинации. Перед командой `passwd` полезно подтвердить два идентификатора: имя дистрибутива через `wsl -l -v` и имя пользователя внутри Linux. Если в `/home` несколько каталогов, не угадывайте: `getent passwd` покажет записи учётных записей, а после обычного запуска `whoami` подтвердит фактического пользователя. Для дистрибутива не по умолчанию всегда…

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. Set up a WSL development environment). Пример и формулировки — редакция N1RO на 2026-09-20.