- Как сбросить пароль в Linux
- Когда можно использовать GRUB
- Когда нет возможности использовать GRUB
- Участник:IvanZakharyaschev/Что делать, если забыл пароли (в т.ч. пароль root-а)
- Восстановление пароля администратора
- Содержание
- Малыми средствами [ править ]
- С дополнительными ухищрениями при загрузке Вашей системы [ править ]
- С использованием другой ОС Linux [ править ]
- С использованием другой ОС [ править ]
- Как сбросить root-пароль Linux-сервера
- Centos 7 x86_64 + Centos 7 x86_64 Webuzo
- Fedora 28
- openSUSE Leap 42
- Ubuntu 14.04
- Ubuntu 16.04
- Debian 8 + Debian 9
Как сбросить пароль в Linux
Давайте рассмотрим несколько способов сбрасывания системного пароля в Linux. Вы наверное знаете, что у пользователя root есть права на изменение пароля любого пользователя в системе. А что если вы забыли пароль от рута? Вот об этом и пойдет речь в статье.
При восстановления пароля (рута или любого другого пользователя) встречаются две различные ситуации, требующие разного подхода.
Когда можно использовать GRUB
- После этого вы либо увидите приглашение для рута, либо восстанавливающее меню, где нужно выбрать строку с рутом. Используйте passwd для того чтобы изменить пароль у любого пользователя
Также следует заметить что некоторые дистрибутивы создают режим восстановления во время установки. Если в вашем меню GRUB есть такой пункт, вам не нужно производить все вышеперечисленные действия, просто выберите режим восстановления, а затем приглашение для рута, в последующем диалоговом окне.
Когда нет возможности использовать GRUB
Если вы не используете GRUB по каким-то причинам, вы можете восстановить пароль с помощью live CD (Я буду использовать Ubuntu live CD, вы можете взять любой другой). Просто следуйте дальнейшим инструкциям:
- Загрузитесь с live CD
- Выберите «Попробовать Ubuntu без изменений на вашем компьютере» (Try Ubuntu without any changes to your computer)
Далее нам нужно монтировать линукс-раздел. Для этого создайте папку, в качестве точки для монтирования, используя команду: sudo mkdir /media/linx_part
Примонтируйте линукс-раздел командой sudo mount /dev/sda1 /media/linx_part
Источник
Участник:IvanZakharyaschev/Что делать, если забыл пароли (в т.ч. пароль root-а)
Этот вопрос с коротко сформулированным ответом есть в FAQ#Как восстановить пароль пользователя root?.
См. также Восстановление пароля администратора#С дополнительными ухищрениями при загрузке Вашей системы, если при самом простом способе с загрузкой с init=/bin/sh не работает клавиатура.
> к своему бескрайнему ужасу и отчаянию, что забыл пароль.
> я помню только, что придумывал > простой пароль — только вот какой, не знаю. > ведь нет же способа узнать его?
Понятно. Ну это можно так или иначе решить. (Обычное решение — загрузка в особом режиме, или загрузка другой системы — например, установочного CD и смена пароля.)
Комментарии про остальное:
Узнать — нет. Отступление: Пароли пользователей хранятся в виде «хешей» — результатов применения «односторонней» функции к исходному паролю. Как раз чтобы не было никакой возможности увидеть чей-нибудь пароль. Раньше даже было принято хранить их в файле, всем доступном для чтения (то ли /etc/passwd , то ли /etc/shadow ). Теперь всякие такие вещи делают более скрытыми, что меня расстраивает с точки зрения образования новых пользователей — у них меньше возможностей разобраться во внутренностях, имея доступ к какой-то рабочей системе. (Читать про эти вещи в Подсистема учётных записей в книжке Books:Linuxintro2; ага, скрывают хеши, чтобы нельзя было подбирать на другом компьютере, разумный аргумент.)
> правда ли, что это не банковская карта, и компьютер не скажет мне «вы > исчерпали свои 100 попыток, у вас осталась последняя, после которой я > самоуничтожаюсь»?
Кажется, нет, такое не запрограммировано. Есть вот однако искусственная небольшая задержка при проверке пароля, насколько я понимаю. Чтобы затруднить автоматический подбор.
> наверное, я могу просто переустановить тот же альт линукс? и создать новую учётную запись
Ну да, конечно. Это довольно просто, хотя я лично очень редко переустанавливаю системы, и не склонен это делать. Польза от такого неосознанного моего принципа может быть образовательная — решая проблему без переустановки, больше узнаёшь, и конкретного (не очень полезные знания), и принципиального — какие возможности есть, чего не стоит бояться.
> с паролем 12345, который я запишу на двери туалета, чтобы не > забыть?
Мне ещё нравится идея входа по отпечаткам пальцев. Тогда нет проблемы слабого пароля. Но сам я не настраивал такое (хотя у меня на компе есть штука для чтения отпечатков пальцев).
> ну, или ещё я могу попробовать встретиться с тобой, чтобы ты мог зайти под > собой и создать новую учётную запись.
Скорее всего не получится, потому что создавать учётную запись надо как администратор. У него свой пароль (второй пароль, который надо тебе помнить). Есть другие механизмы работы с правами администратора, когда не нужен пароль администратора (sudo — самое известное, и обычно всеми используемое; я очень редко ввожу пароль администратора), но они должны быть всё равно сначала настроены администратором. А также переключение на администратора в системах ALTLinux по умолчанию позволено только «особым» пользователям; скорее всего я своего пользователя при установке не поместил в эту привилегированную группу.
> в общем, если что-нибудь посоветуешь мне (кроме того, что пора мне перестать > идиотничать), спасибо!
Да не, зачем говорить про «идиотничать», нормальный вопрос, на который хорошо знать ответ. Вообще, в каких-то правилах этикета компьютерных списков рассылки (TODO: ссылка!) я читал, что не принято называть себя дураком, принижать себя и т.п., потому что это слова не по сути дела.
можно совершать одно из следующего.
1) Раньше было можно загрузиться в особом режиме, таком, когда сразу запускается rootовый shell, и без запуска всего остального, добавив к параметрам загрузки (к соответствующей загружаемой системе строчке в загрузчике) «single» или «1» (или ещё init=/bin/sh). Сейчас, по-моему, в системах ALT Linux там спрашивают-таки пароль администратора (что в принципе разумно). (TODO: init=/bin/sh должно работать всё-таки — см. FAQ#Как восстановить пароль пользователя root?; так что то, что дальше, не важно.)
2) (Замечание: это умение скорее нужное только для ../Что делать, если затёр загрузчик системы, раз «init=/bin/sh» работает.) Загрузиться с установочного CD. Бывают установочные CD с опцией загрузки «rescue» — самое удобное должно быть. Но можно справиться и в просто установщике с этой задачей.
Когда стартует установщик, там надо переключиться на консоль (Ctrl-Alt-F<1,2,3,4. >) с shell-ом, чтобы начать просто самому давать команды. И там:
— смонтировать твою корневую файловую систему с жёсткого диска (командой mount, например, mount /dev/sda5 /mnt/disk/), если надо
— потом, скажем, переключить корень рабочей файловой системы туда (chroot /mnt/disk/ ; chroot — прикольная штука)
— и там сменить «штатно» пароли (passwd USERNAME)
— выйти из chroot-ового shell-а, отмонтировать (umount /mnt/disk/) эту файловую систему (чтобы не потерять изменения)
Есть и другие варианты, как поменять пароль после того, как смонтировал твою корневую файловую систему.
Перед тем, как это проделать, можно изучить документацию на упомянутые команды, чтобы понимать, что происходит (можно в интернетах, наверное, или man ИМЯ_КОМАНДЫ в MacOS X).
Я мог бы, наверное, вместо этого ответа дать ссылку на какую-то документацию, и это было бы и полезно по-своему: документацию можно читать и ещё.
И вот на этой викистранице я как раз добавил несколько ссылок.
Источник
Восстановление пароля администратора
Содержание
Малыми средствами [ править ]
Пароль пользователя root по соображениям безопасности нельзя узнать, можно задать ему новый пароль. Для этого:
- В меню загрузчика пропишите в параметрах init=/bin/bash
- Если загрузчик — grub, следует:
- нажать «e» при курсоре на цели загрузки, соответствующей используемому экземпляру ALT Linux;
- в открывшемся редакторе отыскать строку, начинающуюся с linux /boot/vmlinuz;
- в её конец дописать то самое init=/bin/bash
- нажать F10
- Загрузится консоль. Выполните в ней команду
- Если файловая система /usr создана отдельно, найдите (cat /etc/fstab) и примонтируйте /usr
- Запустите passwd (можно пропустить предыдущий пункт и вернуться к нему в случае, если команда не будет найдена)
- Укажите пароль для пользователя root и подтвердите его. Пароль изменён, но дело ещё не закончено. Нам нужно переобозначить контекст SELinux. Если мы не выполним переобозначение всего контекста SELinux, мы не сможем войти используя новый пароль. Для этого:
- Далее выполните команды :
С дополнительными ухищрениями при загрузке Вашей системы [ править ]
Не всегда после минимальной загрузки системы, как в первом предложенном способе, Вы получите полностью рабочую систему, которой Вы смогли бы командовать. А именно, она на этом этапе может ещё не работать с нужными устройствами — с клавиатурой. (Такое наблюдалось, например, на ALT Desktop 4.0 с USB-клавиатурой.)
Тогда путь можно немного усложнить: в качестве параметра init передать ядру не командную оболочку, а специально написанный скрипт, который сначала выполнит обычные действия по подготовке устройств к использованию в системе, а потом уже запустит командную оболочку. Скрипт этот нужно расположить в корневом разделе, который только и доступен на этом этапе загрузки.
Подробности: Для наших целей хорошо, если у Вас /var/tmp/ располагается на корневом разделе (проверьте по выводу команды mount или df /var/tmp/ ) и у Вас есть права записи в него. Пусть наш скрипт будет расположен по пути /var/tmp/myinit . Создайте его нормальным текстовым редактором (например, в меню системы, где такое приходилось делать, нашёлся gedit) с таким содержанием:
чтобы «объявлялись» выполняемые шаги Вашего скрипта и Вы лучше могли бы следить за процессом; см. man set ), сохраните Ваш скрипт, сделайте исполняемым ( chmod a+x /var/tmp/myinit ), и перезагружайтесь с параметром init=/var/tmp/myinit .
Если не нашлось места, куда бы Вы могли поместить свой init-скрипт, так чтобы он был доступен на этом раннем этапе загрузки, то нужно будет придумать какую-нибудь ещё хитрость. Возможно, можно сделать свою initial RAM fs на любом разделе и загрузиться с ней (если у Вас загрузчик — grub). Но это уже чрезмерно для обычного человека: каждый Unix-пользователь должен представлять себе, как писать shell-скрипт (что мы и сделали) — это ему будет полезно при пользовании, но вряд ли обязан уметь изготавливать свои initramfs и т.п. — больше это ему при использовании системы никогда не пригодится. Поэтому разумнее, наверное, перейти к следующему описанному способу, более универсальному и полезному в других случаях, но требующему дополнительных средств.
С использованием другой ОС Linux [ править ]
Суть метода — загрузив другую ОС Linux собрать дерево файловых систем и сделать в него chroot, после чего появляется возможность выполнять в целевой системе различные команды с правами суперпользователя. Для этого можно воспользоваться практически любым дистрибутивом любого производителя. Существуют и специализированные дистрибутивы для восстановления, например ALT Linux Rescue. Ограничение одно: архитектура используемого для восстановления дистрибутива должна позволить запускать приложения Вашей ОС после перехода в chroot. Этот путь полезен не только для смены пароля, но и в других необычных случаях. Сборка дерева ФС для chroot подробно описана в статье Восстановление загрузочной записи.
В случае использования ALT Linux Rescue и несложного состава разделов последовательность команд после загрузки с CD/USB выглядит так:
Этот способ может оказаться единственным для случаев с расположением корневой файловой системы на RAID, LVM и т.п.
С использованием другой ОС [ править ]
Можно воспользоваться любой ОС, которая позволяет писать в раздел с той файловой системой, на которой у Вас расположен корневой раздел. В ALT используется система хранения хэшей tcb, достаточно отредактировать файл /etc/tcb/root/shadow, убрав символы между первым и вторым двоеточиями. Пароль root станет пустым. В ряде других дистрибутивов можно аналогичным образом исправлять /etc/shadow. Форматы shadow различаются только тем, что в последнем случае файл содержит хэши паролей всех пользователей, а не одного, как в ALT. Следует проявлять осторожность, чтобы не испортить формат файла.
Источник
Как сбросить root-пароль Linux-сервера
Если вы забыли root-пароль от Linux-сервера в облаке и sudo прав на машину у других пользователей нет, то воспользуйтесь моей инструкцией, чтобы сбросить root-пароль под различные ОС.
Centos 7 x86_64 + Centos 7 x86_64 Webuzo
1. Нажмите на кнопку Send Ctrl+Alt+Del в консоли — это перезагрузит сервер. Во время загрузки нужно «поймать» меню загрузчика. нашем образе CentOS 7 используется Grub.
2. Как только вы увидите на экране такую картинку, нажмите пробел или кнопку вниз — это прервет отсчет времени:
3. Grub некоторое время «думает» на этом меню загрузки. Поэтому надо дать ему понять, что не нужно автоматически продолжать загрузку с опциями по умолчанию, и что мы хотим работать с его меню.
4. Стрелками выбираем нужное ядро, которое отображено на скриншоте, и вводим «e» латиницей.
5. Теперь мы можем редактировать опции загрузки ядра:
6. Стрелками переходим к началу строки, которая начинается с «linux16». Это указание пути к файлу ядра, которое нужно загрузить, а также опции загрузки. Нам нужно переписать эти опции, чтобы попасть в ОС без root-пароля.
- Меняем ro на rw
- Меняем первое значение console=tty0 на console=tty
- Удаляем 2 значения: console=ttyS0,115200n8 и console=ttyS0,115200
- В конце добавляем init=/bin/bash
Было:
Стало:
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 с новым паролем.
Fedora 28
1. Нажмите на кнопку «Send Ctrl+Alt+Del» в консоли — это перезагрузит сервер. В процессе загрузки нужно «поймать» меню загрузчика. В нашем образе Fedora используется Grub.
Как только вы увидите на экране такую картинку, нажмите пробел или кнопку вниз — это прервет отсчет времени:
2. Grub некоторое время «думает» на этом меню загрузки. Поэтому надо дать ему понять, что не нужно автоматически продолжать загрузку с опциями по умолчанию, и что мы хотим работать с его меню. Для этого вводим «e» латиницей.
Появляется возможность редактировать опции загрузки ядра.
3. Стрелками переходим к началу строки, что начинается с «linux16». Это указание пути к файлу ядра, которое нужно загрузить, а также опции загрузки. Нам нужно переписать эти опции, чтобы попасть в ОС без root-пароля.
- Меняем ro на rw
- Меняем первое значение console=tty1 на console=tty
- Удаляем значение console=ttyS0,115200n8
- В конце добавляем rd.break enforcing=0
Было:
Стало:
4. После изменений нажимаем комбинацию клавиш CTRL+X. Это перезагружает сервер с новыми опциями.
Если все сделали правильно, видим следующее:
5. Мы зашли в «emergency recovery» консоли.
Сначала проверяем, можем ли вносить изменения в файловую систему. Для этого в консоли вводим:
Если все сделали правильно, увидим следующее:
Нас интересует опция rw, которую мы задавали в настройках. Должна быть указана она — не ro.
Если видим ro — нужно перемонтировать файловую систему в rw:
6. После монтирования снова проверьте, что опция при проверке указана как rw, при помощи команды из предыдущего пункта.
7. Сбрасываем пароль:
Важно! Новый пароль не отображается даже звездочками. Поэтому надо вводить его вслепую дважды.
8. После этого, на всякий случай, выполняем команду sync — чтобы все изменения из оперативной памяти записались на диск:
2 раза вводим команду:
9. После этого пойдет нормальная загрузка ОС. Дожидаемся окончания загрузки и входим с новым паролем.
10. Теперь нужно поправить Selinux после нашего вмешательства. Отдаем команды от root:
Файл /etc/shadow перечитывается для Selinux и включается режим обратно в Enforcing.
openSUSE Leap 42
Если вы настраивали пароль на 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-пароля.
Делаем следующее:
- Удаляем значение: console=ttyS0,115200n8
- Меняем значение console=tty0 на console=tty
- В конце добавляем init=/bin/bash
Было:
Стало:
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 с новым паролем.
Ubuntu 14.04
1. Нажмите на кнопку «Send Ctrl+Alt+Del» — это перезагрузит сервер. Сразу выделяем область консоли мышью. В процессе загрузки требуется успеть «поймать» меню загрузчика В нашем образе Ubuntu используется Grub.
2. В Canonical меню Grub обычно не видно. Чтобы его вызвать, надо зажать клавишу Shift (только левый) в процессе загрузки, как только мелькает надпись Booting from hard disk.
Если с первого раза не получится, пробуйте еще раз.
В результате вы должны получить следующую картинку:
3. На первом пункте Ubuntu нажимаем e латиницей и видим следующее:
4. Стрелками переходим к началу строки, которая начинается с «linux». Это указание пути к файлу ядра, которое нужно загрузить, а также опции загрузки. Нам нужно переписать эти опции, чтобы попасть в ОС без root-пароля.
Делаем следующее:
- Меняем ro на rw
- Меняем первое значение console=tty1 на console=tty
- Удаляем значение: console=ttyS0
- В конце добавляем init=/bin/bash
Было:
Стало:
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 с новым паролем.
Ubuntu 16.04
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 с новым паролем.
Debian 8 + Debian 9
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-пароля.
Делаем следующее:
- Меняем ro на rw
- Меняем первое значение console=tt0 на console=tty
- Удаляем 2 значения: console=ttyS0,115200 и earlyprintk=ttyS0,115200
- в конце добавляем init=/bin/bash
Было:
Стало:
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 с новым паролем.
Источник