Как сбросить забытый пароль 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
Замените «
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
Вам будет предложено ввести новый пароль дважды. И это должно быть так.
Если вы выйдете из этого сеанса и начнете новый сеанс, вы снова войдете в систему как обычная учетная запись по умолчанию, и у вас будет новый пароль.
Хватит жевать свой хвост
Один или оба этих метода будут работать для вас, и вы будете освобождены от бесконечного цикла невозможности сбросить свой пароль, потому что вы не знаете свой пароль.