Роман Самборский / Shutterstock
Забудьте свой пароль пользователя подсистемы Windows для Linux, и вы попадете в петлю. Чтобы сбросить пароль… вам необходимо знать свой пароль. Вот как выбраться из этого цикла.
Уроборос — древний символ, изображающий змей или дракон, поедающий свой хвост. Если ты забудешь свой Подсистема Windows для Linux (WSL), вы окажетесь в столь же неприятной и бесконечной петле.
При первом запуске недавно установленного дистрибутива Linux под WSL вас просят указать имя пользователя и пароль. Это ваш пароль пользователя. В обычной установке Linux вас просят ввести пароль каждый раз, когда вы входите в систему. Однако при использовании WSL ваш пользователь входит в систему автоматически, и вы попадаете прямо в командную строку Linux.
Поскольку вам не нужно использовать пароль для входа в систему, он легко выскользнет из головы. Особенно, если вы не часто используете WSL.
Это может не показаться такой неудачей, потому что, в конце концов, вы автоматически входите в систему. Проблема становится очевидной, когда вы пытаетесь получить доступ к файлам, которые не находятся в вашем домашнем каталоге, или установить программное обеспечение, или выполнить административные действия, такие как создание и управление другими пользователями.
Для этого вам нужно использовать команду sudo. В Linux вы подтверждаете, что имеете право использовать команду sudo, указав свой пароль.
Очевидный ответ — сбросить пароль. Вы забыли его, так что просто установите новый, верно? Это блестящая идея. Но для команды passwd требуется ваш действующий пароль чтобы доказать, что ты ты. Это разумная мера безопасности. Команда passwd требует подтверждения того, что вы являетесь владельцем учетной записи пользователя, для которой вы меняете пароль, прежде чем она позволит вам изменить пароль.
Если вы используете sudo с командой passwd, вы можете изменить пароль для любого пользователя, независимо от того, знаете ли вы его пароль или нет. Это звучит как решение, но нам все еще мешают, потому что для использования команды sudo вам необходимо знать свой пароль. Это начинает ощущаться как уроборос и Словить 22 комбинированный.
Конечно, есть способы избежать этой круговой логической головоломки. Вот два, которые вы можете попробовать.
Мы собираемся показать вам два способа сделать это. Один способ немного сложнее другого, но он работал каждый раз, когда мы его пробовали. Другой способ — это немного более простой метод, но мы получили неоднозначные результаты.
Нам нужно определить исполняемый файл для дистрибутива Linux, который вы используете с WSL. В Windows 10 он будет в этом каталоге:
c: user AppData Local Microsot WindowsApps
Замените « » именем своей учетной записи пользователя Windows. В командной строке Windows смените каталог на это место и введите «dir».
Исполняемый файл должен быть легко идентифицирован. На этой тестовой машине мы установили Ubuntu 20.04, и очевидно, что нам нужен файл «ubuntu2004.exe».
Мы запустим сеанс Ubuntu, но скажем ему войти в систему как пользователь root вместо учетной записи пользователя, которую вы создали при установке дистрибутива Linux.
Конфигурация ubuntu2004 — по умолчанию-пользователь root
Сеанс Ubuntu запущен, и мы видим командную строку в окне терминала. Приглашение представлено белым текстом, а последний символ — решетка «#», а не знак доллара «$». Это говорит нам, что пользователь является пользователем root, а не обычным пользователем. В имени пользователя также есть слово «root».
Если потребуются дополнительные доказательства, мы можем использовать команду whoami.
Итак, мы определенно вошли в систему как root. Мы можем пойти дальше и сбросить пароль пользователя по умолчанию. Команда passwd запросит у вас новый пароль, а затем попросит ввести его второй раз. Ни один из них не будет эхом отражаться на экране. Пароль, который мы меняем, принадлежит пользователю «dave».
Убедитесь, что вы помните новый пароль. Мы выйдем из сеанса Ubuntu и вернемся в командную строку Windows.
Чтобы проверить наш новый пароль, нам нужно запустить новый сеанс Ubuntu и сбросить учетную запись обычного пользователя в качестве учетной записи по умолчанию.
Конфигурация ubuntu2004 — по умолчанию-пользователь Дэйв
Сеанс начинается, и мы вошли в систему как обычный пользователь с нашей обычной цветной командной строкой.
Чтобы доказать, что наш пароль был изменен, мы воспользуемся командой sudo для команды. Команда, которую мы используем, не имеет значения, важно то, что мы используем sudo. Мы воспользуемся командой ps, чтобы перечислить некоторые процессы.
Вам будет предложено ввести пароль, который вы создали, когда использовали команду passwd от имени пользователя root. Пароль должен быть принят, и команда должна быть запущена за вас.
Мы можем сделать то же самое с помощью команды WSL. В нашем тестировании мы получили противоречивые результаты, но, возможно, вам повезет больше, чем нам. Это более короткий метод, поэтому вы можете сначала попробовать его, а если он не сработает, попробуйте более длинный метод, который мы показали вам выше.
В командной строке Windows введите:
wsl — корень пользователя
Начнется сеанс Linux. Вы войдете в систему как root. Вы можете проверить это с помощью команды whoami.
Чтобы сбросить забытый пароль пользователя, используйте команду passwd и укажите имя учетной записи пользователя.
Вас дважды попросят ввести новый пароль. Так и должно быть.
Если вы выйдете из этого сеанса и начнете новый сеанс, вы снова войдете в систему как обычную учетную запись по умолчанию, и у вас будет новый пароль.
Один или оба этих метода подойдут вам, и вы освободитесь от бесконечного цикла, в котором невозможно сбросить пароль из-за того, что вы его не знаете.
Источник
Дата добавления: 07 апреля 2010
Если вы забыли пароль к учетной записи linux, то в большинстве случаев его можно легко восстановить в три шага.
Загружаемся под root не зная пароля.
В вашем дистрибутиве, в списке grub (при включении нажмите эскейп, если не видно этого меню и система начинает старт сразу) должен быть пункт с надписью Recovery mode (режим восстановления). Загрузитесь в этот режим. После этого есть возможность попасть в терминал под именем root не вводя свой пароль.
Установка нового пароля.
Теперь вы в root и вам доступны любые действия по администрированию.
Для управления паролями существует команда passwd .
Для сброса пароля введите команду:
passwd имя_пользователя
После этого должно появиться предложение ввода нового пароля (2 раза).
Логический конец.
Если работа passwd завершилась удачей, то можно перезагрузить компьютер командой reboot и зайти в обычный режим введя свой новый пароль.
Источник
Если вы забыли root-пароль от Linux-сервера в облаке и sudo прав на машину у других пользователей нет, то воспользуйтесь моей инструкцией, чтобы сбросить root-пароль под различные ОС.
1. Нажмите на кнопку Send Ctrl+Alt+Del в консоли — это перезагрузит сервер. Во время загрузки нужно «поймать» меню загрузчика. нашем образе CentOS 7 используется Grub.
2. Как только вы увидите на экране такую картинку, нажмите пробел или кнопку вниз — это прервет отсчет времени:
3. Grub некоторое время «думает» на этом меню загрузки. Поэтому надо дать ему понять, что не нужно автоматически продолжать загрузку с опциями по умолчанию, и что мы хотим работать с его меню.
4. Стрелками выбираем нужное ядро, которое отображено на скриншоте, и вводим «e» латиницей.
5. Теперь мы можем редактировать опции загрузки ядра:
6. Стрелками переходим к началу строки, которая начинается с «linux16». Это указание пути к файлу ядра, которое нужно загрузить, а также опции загрузки. Нам нужно переписать эти опции, чтобы попасть в ОС без root-пароля.
Было:
Стало:
7. После изменения нажимаем комбинацию клавиш CTRL+X, что перезагружает ядро с новыми опциями.
8. Если мы все сделали корректно, увидим следующее:
9. Мы попали на сервер от root без пароля и можем сбросить сам пароль.
Для начала проверяем, можно ли внести изменения в файловую систему. Для этого в консоли вводим:
Если все сделали правильно, увидим такой экран:
На экране мы должны видеть опцию rw, которую мы задавали в настройках — не ro.
Если видим ro, нужно перемонтировать файловую систему в rw:
После монтирования нужно снова перепроверить, что опция указана как rw, при помощи команды из предыдущего пункта.
10. Сбрасываем пароль командой:
Важно! Новый пароль не отображается даже звездочками. Поэтому нужно вводить его вслепую дважды.
Еще важнее! Если вы не выключали Selinux, вам также понадобится заставить его перечитать контексты. Для этого надо создать файл /.autorelabel, который даст Selinux понять, что нужно перечитать контекст. Без этого мы не сможем залогиниться с новым паролем:
11. После этого, на всякий случай, выполняем команду sync, чтобы все изменения из оперативной памяти записались на диск:
12. Чтобы изменения применились, перезагрузите сервер.
Команды reboot и shutdown -r и кнопка «Send Ctrl+Alt+Del» не подойдут. Они рассчитывают на init-демона, который мы подменили процессом /bin/bash.
Поэтому нужно сделать hard reboot сервера (Холодная перезагрузка) из контрольной панели, или запустить init-демона вручную. Это можно сделать, выполнив команду:
13. После перезагрузки можем зайти на сервер от имени root с новым паролем.
1. Нажмите на кнопку «Send Ctrl+Alt+Del» в консоли — это перезагрузит сервер. В процессе загрузки нужно «поймать» меню загрузчика. В нашем образе Fedora используется Grub.
Как только вы увидите на экране такую картинку, нажмите пробел или кнопку вниз — это прервет отсчет времени:
2. Grub некоторое время «думает» на этом меню загрузки. Поэтому надо дать ему понять, что не нужно автоматически продолжать загрузку с опциями по умолчанию, и что мы хотим работать с его меню. Для этого вводим «e» латиницей.
Появляется возможность редактировать опции загрузки ядра.
3. Стрелками переходим к началу строки, что начинается с «linux16». Это указание пути к файлу ядра, которое нужно загрузить, а также опции загрузки. Нам нужно переписать эти опции, чтобы попасть в ОС без root-пароля.
Было:
Стало:
4. После изменений нажимаем комбинацию клавиш CTRL+X. Это перезагружает сервер с новыми опциями.
Если все сделали правильно, видим следующее:
5. Мы зашли в «emergency recovery» консоли.
Сначала проверяем, можем ли вносить изменения в файловую систему. Для этого в консоли вводим:
Если все сделали правильно, увидим следующее:
Нас интересует опция rw, которую мы задавали в настройках. Должна быть указана она — не ro.
Если видим ro — нужно перемонтировать файловую систему в rw:
6. После монтирования снова проверьте, что опция при проверке указана как rw, при помощи команды из предыдущего пункта.
7. Сбрасываем пароль:
Важно! Новый пароль не отображается даже звездочками. Поэтому надо вводить его вслепую дважды.
8. После этого, на всякий случай, выполняем команду sync — чтобы все изменения из оперативной памяти записались на диск:
2 раза вводим команду:
9. После этого пойдет нормальная загрузка ОС. Дожидаемся окончания загрузки и входим с новым паролем.
10. Теперь нужно поправить Selinux после нашего вмешательства. Отдаем команды от root:
Файл /etc/shadow перечитывается для Selinux и включается режим обратно в Enforcing.
Если вы настраивали пароль на Grub-загрузчик и не помните его тоже этот способ вам не подойдет. Вам нужно будет загрузить сервер с другого источника — например, с OpenSuse Install DVD образа.
1. Нажмите на кнопку «Send Ctrl+Alt+Del» в консоли — это перезагрузит сервер. В процессе загрузки нужно «поймать» меню загрузчика. В нашем образе openSUSE используется Grub.
Как только вы увидите на экране такую картинку, нажмите пробел или кнопку вниз — это прервет отсчет времени:
2. Grub некоторое время «думает» на этом меню загрузки. Поэтому надо дать ему понять, что не нужно автоматически продолжать загрузку с опциями по умолчанию, и что мы хотим работать с его меню. Для этого вводим «e» латиницей.
Появляется возможность редактировать опции загрузки ядра.
Чтобы восстановить пароль, мы можем использовать как single-user mode, так и трюк с init=/bin/bash. Поскольку возможно, что у вас single-user mode настроен так, чтобы все равно запрашивать root-пароль, мы сразу опишем способ с запуском bash как init процессом.
Наши образы openSUSE используют Grub как загрузчик. Если вы использовали свой образ openSUSE, ваш загрузчик может оказаться не Grub, а LiLo. В таком случае, синтакс будет отличаться.
3. Стрелками переходим к началу строки, что начинается с «linux». Это указание пути к файлу ядра, которое нужно загрузить, а также опции загрузки. Нам нужно переписать эти опции, чтобы попасть в ОС без root-пароля.
Делаем следующее:
Было:
Стало:
4. После изменения нажимаем комбинацию клавиш CTRL+X, что выполняет перезагрузку с новыми опциями.
5. Если все было выполнено корректно, видим такую картину:
Мы попали на сервер от root без пароля и можем выполнить сброс самого пароля.
6. Для начала выполняем монтирование файловой системы для возможности внесения изменений, в консоли вводим:
Проверяем корректность изменений:
Если все было выполнено правильно, мы увидим следующее:
Нас интересует опция rw, должна быть указана именно она, а не ro.
7. Сбрасываем пароль командой:
Важно! Новый пароль не отображается даже звездочками, потому надо вводить его вслепую дважды.
8. После этого, на всякий случай, выполняем команду sync, чтобы все изменения из оперативной памяти записались на диск:
9. Далее нужно выполнить перезагрузку сервера для применения изменений.
Команды reboot и shutdown -r и кнопка «Send Ctrl+Alt+Del» не подойдут. Они рассчитывают на init-демона, который мы подменили процессом /bin/bash.
Поэтому нужно сделать hard reboot сервера (Холодная перезагрузка) из контрольной панели, или запустить init-демона вручную. Это можно сделать, выполнив команду:
13. После перезагрузки можем зайти на сервер от имени root с новым паролем.
1. Нажмите на кнопку «Send Ctrl+Alt+Del» — это перезагрузит сервер. Сразу выделяем область консоли мышью. В процессе загрузки требуется успеть «поймать» меню загрузчика В нашем образе Ubuntu используется Grub.
2. В Canonical меню Grub обычно не видно. Чтобы его вызвать, надо зажать клавишу Shift (только левый) в процессе загрузки, как только мелькает надпись Booting from hard disk.
Если с первого раза не получится, пробуйте еще раз.
В результате вы должны получить следующую картинку:
3. На первом пункте Ubuntu нажимаем e латиницей и видим следующее:
4. Стрелками переходим к началу строки, которая начинается с «linux». Это указание пути к файлу ядра, которое нужно загрузить, а также опции загрузки. Нам нужно переписать эти опции, чтобы попасть в ОС без root-пароля.
Делаем следующее:
Было:
Стало:
5. После изменения нажимаем комбинацию клавиш CTRL+X, что выполняет перезагрузку с новыми опциями.
Если все сделали правильно, видим следующее:
Мы попали на сервер от root и можем сбросить пароль.
6. Выполняем проверку возможности внесения изменений в файловую систему:
Если все сделали правильно, видим следующее:
Нас интересует опция rw, которую мы задавали в настройках. Должна быть указана она — не ro.
7. Если видим ro — нужно перемонтировать файловую систему в rw:
8. После монтирования снова проверьте, что опция при проверке указана как rw, при помощи команды из предыдущего пункта.
9. Сбрасываем пароль командой:
Важно! Новый пароль не отображается даже звездочками. Поэтому нужно вводить его вслепую дважды.
Еще важнее! Если вы не выключали Selinux, вам также понадобится заставить его перечитать контексты. Для этого надо создать файл /.autorelabel, который даст Selinux понять, что нужно перечитать контекст. Без этого мы не сможем залогиниться с новым паролем:
10. После этого, на всякий случай, выполняем команду sync, чтобы все изменения из оперативной памяти записались на диск:
11. Чтобы изменения применились, перезагрузите сервер.
Команды reboot и shutdown -r и кнопка «Send Ctrl+Alt+Del» не подойдут. Они рассчитывают на init-демона, который мы подменили процессом /bin/bash.
Поэтому нужно сделать hard reboot сервера (Холодная перезагрузка) из контрольной панели, или запустить init-демона вручную. Это можно сделать, выполнив команду:
13. После перезагрузки можем зайти на сервер от имени root с новым паролем.
1. Нажмите на кнопку «Send Ctrl+Alt+Del» — это перезагрузит сервер. Сразу выделяем область консоли мышью. В процессе загрузки требуется успеть «поймать» меню загрузчика В нашем образе Ubuntu используется Grub.
2. В Canonical меню Grub обычно не видно. Чтобы его вызвать, надо зажать клавишу Shift (только левый) в процессе загрузки, как только мелькает надпись Booting from hard disk.
Если с первого раза не получится, пробуйте еще раз.
В результате вы должны получить следующую картинку:
3. Стрелками выбираем «Advanced options for Ubuntu» и нажимаем Enter, видим следующее:
4. Выбираем пункт с (recovery mode) и нажимаем Enter.
5. Выбираем пункт «root Drop to root shell prompt» и нажимаем Enter:
7. В наших шаблонах ОС Ubuntu не нужно вводить дополнительный пароль. Мы попадаем на сервер от root без него.
8. Для начала выполняем проверку возможности внесения изменений в файловую систему, в консоли вводим:
Нас интересует опция rw, которую мы задавали в настройках. Должна быть указана она — не ro.
9. Если видим ro — нужно перемонтировать файловую систему в rw:
10. После монтирования снова проверьте, что опция при проверке указана как rw, при помощи команды из предыдущего пункта.
11. Сбрасываем пароль командой:
Важно! Новый пароль не отображается даже звездочками. Поэтому нужно вводить его вслепую дважды.
12. После этого, на всякий случай, выполняем команду sync, чтобы все изменения из оперативной памяти записались на диск:
13. Чтобы изменения применились, перезагрузите сервер.
Команды reboot и shutdown -r и кнопка «Send Ctrl+Alt+Del» не подойдут. Они рассчитывают на init-демона, который мы подменили процессом /bin/bash.
Поэтому нужно сделать hard reboot сервера (Холодная перезагрузка) из контрольной панели, или запустить init-демона вручную. Это можно сделать, выполнив команду:
14. После перезагрузки можем зайти на сервер от имени root с новым паролем.
1. Нажмите на кнопку «Send Ctrl+Alt+Del» — это перезагрузит сервер. Сразу выделяем область консоли мышью. В процессе загрузки требуется успеть «поймать» меню загрузчика В наших образах Debian используется Grub.
2. В Canonical меню Grub обычно не видно. Чтобы его вызвать, надо зажать клавишу Shift (только левый) в процессе загрузки, как только мелькает надпись Booting from hard disk.
Если с первого раза не получится, пробуйте еще раз.
В результате вы должны получить следующую картинку:
3. В отличие от Ubuntu, root-пользователь в Debian образе закрыт (на пароле). Потому мы не сможем воспользоваться штатным Rescue вариантом загрузки.
Нужно поправить опции загрузки.
4. Выбираем пункт Debian GNU/Linux и нажимаем e латиницей.
5. Попадем в конфигурацию выбранного пункта меню:
6. Стрелками переходим к началу строки, которая начинается с «linux». Это указание пути к файлу ядра, которое нужно загрузить, а также опции загрузки. Нам нужно переписать эти опции, чтобы попасть в ОС без root-пароля.
Делаем следующее:
Было:
Стало:
7. После изменения нажимаем комбинацию клавиш CTRL+X, видим меню и нажимаем Enter.
8. Мы попали на сервер от root и можем сбросить пароль.
Выполняем проверку возможности внесения изменений в файловую систему:
Если все сделали правильно, видим следующее:
Нас интересует опция rw, которую мы задавали в настройках. Должна быть указана она — не ro.
9. Если видим ro — нужно перемонтировать файловую систему в rw:
10. После монтирования снова проверьте, что опция при проверке указана как rw, при помощи команды из предыдущего пункта.
11. Сбрасываем пароль командой:
Важно! Новый пароль не отображается даже звездочками. Поэтому нужно вводить его вслепую дважды.
12. После этого, на всякий случай, выполняем команду sync, чтобы все изменения из оперативной памяти записались на диск:
13. Чтобы изменения применились, перезагрузите сервер.
Команды reboot и shutdown -r и кнопка «Send Ctrl+Alt+Del» не подойдут. Они рассчитывают на init-демона, который мы подменили процессом /bin/bash.
Поэтому нужно сделать hard reboot сервера (Холодная перезагрузка) из контрольной панели, или запустить init-демона вручную. Это можно сделать, выполнив команду:
14. После перезагрузки можем зайти на сервер от имени root с новым паролем.
Источник