Поиск по сайту:

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


Забудьте свой пароль пользователя подсистемы Windows для Linux, и вы застрянете в петле. Чтобы сбросить пароль… вам нужно знать свой пароль. Вот как вырваться из этого круга.

Заперт в бесконечном цикле

Уроборос — это древний символ, изображающий змею или дракона, пожирающего собственный хвост. Если вы забудете пароль пользователя подсистемы Windows для Linux (WSL), вы окажетесь в столь же неприятном и бесконечном цикле.

При первом запуске только что установленного дистрибутива Linux под WSL вас попросят указать имя пользователя и пароль. Это ваш пароль пользователя. В обычной установке Linux вам будет предложено ввести пароль каждый раз, когда вы входите в систему. Однако с WSL ваш пользователь входит в систему автоматически, и вы попадаете прямо в командную строку Linux.

Поскольку вам не нужно использовать свой пароль для входа в систему, он легко ускользнет из вашей памяти. Особенно, если вы не используете WSL часто.

Это может показаться не такой уж большой проблемой, потому что, в конце концов, вы автоматически входите в систему. Проблема становится очевидной, когда вы пытаетесь получить доступ к файлам, которые не находятся в вашем домашнем каталоге, или устанавливаете программное обеспечение, или выполняете административные действия, такие как создание и управление другими пользователями.

Для этого вам нужно использовать команду sudo. В Linux вы подтверждаете, что имеете право использовать команду sudo, вводя свой пароль.

Очевидный ответ — сбросить пароль. Вы забыли его, так что просто установите новый, верно? Это блестящая идея. Но для команды passwd требуется ваш текущий пароль , чтобы подтвердить, что вы – это вы. Это разумная мера безопасности. Команда passwd требует подтверждения того, что вы являетесь владельцем учетной записи пользователя, для которой вы меняете пароль, прежде чем она позволит вам изменить пароль.

Если вы используете sudo с командой passwd, вы можете изменить пароль для любого пользователя, знаете ли вы его пароль или нет. Это звучит как решение, но нам все еще мешают, потому что для использования команды sudo вам нужно знать свой пароль. Это начинает напоминать сочетание уробороса и Уловки-22.

Конечно, есть способы избежать этой круговой логической головоломки. Вот два, которые вы можете попробовать.

Сброс с помощью исполняемого файла Linux

Мы собираемся показать вам два способа сделать это. Один способ немного сложнее другого, но он срабатывал каждый раз, когда мы его пробовали. Другой способ немного проще, но мы получили смешанные результаты.

Нам нужно определить исполняемый файл для дистрибутива Linux, который вы используете с WSL. В Windows 10 он будет в этом каталоге:

c:user<username>AppDataLocalMicrosotWindowsApps

Замените «» именем вашей учетной записи пользователя Windows. В командной строке Windows измените каталог на это место, затем введите «dir».

dir

Исполняемый файл должен легко идентифицироваться. На этой тестовой машине мы установили Ubuntu 20.04, и файл «ubunt4.exe», очевидно, то, что мы ищем.

Мы запустим сеанс Ubuntu, но скажем ему войти в систему как пользователь root вместо учетной записи пользователя, созданной при установке дистрибутива Linux.

ubunt4 config --default-user root

Сеанс Ubuntu запущен, и нам представлена командная строка в окне терминала. Подсказка представлена белым текстом, а последний символ представляет собой решетку «#», а не знак доллара «$». Это говорит нам о том, что пользователь является пользователем root, а не обычным пользователем. Имя пользователя также произносится как «root».

Если требуются дополнительные доказательства, мы можем использовать команду whoami.

whoami

Итак, мы определенно вошли в систему как root. Мы можем продолжить и сбросить пароль пользователя по умолчанию. Команда passwd запросит у вас новый пароль, а затем попросит ввести его еще раз. Ни один из них не отразится на экране. Пароль, который мы меняем, принадлежит пользователю «dave».

passwd dave

Убедитесь, что вы помните новый пароль. Мы выйдем из сеанса Ubuntu и вернемся в командную строку Windows.

exit

Чтобы проверить наш новый пароль, нам нужно запустить новый сеанс Ubuntu и сбросить учетную запись обычного пользователя в качестве учетной записи по умолчанию.

ubunt4 config --default-user dave

Сеанс начинается, и мы входим в систему как обычный пользователь с нашей обычной цветной командной строкой.

Чтобы доказать, что наш пароль был изменен, мы будем использовать команду sudo в команде. Команда, которую мы используем, не имеет значения, важно то, что мы используем sudo. Мы будем использовать команду ps для вывода списка некоторых процессов.

sudo ps -e

Вам будет предложено ввести пароль, который вы создали при использовании команды passwd от имени пользователя root. Пароль должен быть принят, и команда должна быть запущена для вас.

Сброс с помощью команды wsl

Мы можем сделать то же самое с помощью команды WSL. В нашем тестировании мы получили противоречивые результаты, но вам может повезти больше, чем нам. Это более короткий метод, поэтому вы можете сначала попробовать его, а если он не сработает, попробуйте более длинный метод, который мы показали вам выше.

В командной строке Windows введите:

wsl --user root

Запустится сеанс Linux. Вы войдете в систему как root. Вы можете проверить это с помощью команды whoami .

whoami

Чтобы сбросить забытый пароль пользователя, используйте команду passwd и укажите имя учетной записи пользователя.

passwd dave

Вам будет предложено ввести новый пароль дважды. И это должно быть так.

Если вы выйдете из этого сеанса и начнете новый сеанс, вы снова войдете в систему как обычная учетная запись по умолчанию, и у вас будет новый пароль.

Хватит жевать свой хвост

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