Если Вы забыли пароль и не можете получить доступ к операционной системе? То эта статья для Вас!
В статье собрана исчерпывающая информация, способная помочь отредактировать пароль root в операционной системе Линукс. Способы восстановления подойдут абсолютно для любых дистрибутивов Linux.
В то же время эта статья даст пищу для размышлений на тему незащищенности менеджера загрузки ОС при физическом доступе к Linux машине. Злоумышленник может получить привилегированный доступ к компьютеру или серверу, войдя в однопользовательский режим и сменив пароль root. При этом ему не требуется знать ни единого пароля системы.
- Введение
- Восстановление пароля root в дистрибутивах Linux
- Дистрибутивы с включенным локальным входом root`a
- Алгоритм восстановления пароля root в дистрибутивах с включенным локальным входом суперпользователя:
- Дистрибутивы с отключенным локальным входом root`a
- Восстановление пароля в Ubuntu, Kubuntu, Xubuntu, Edubuntu:
- Использование LiveCD для восстановления пароля root
- Использование LiveCD для восстановления пароля суперпользователя root:
- Через отладочную консоль
- Используя bash в качестве init
- При помощи LiveCD
- Using the debug shell
- Using bash as init
- Using a LiveCD
Введение
Этот подход к восстановлению пароля может быть использован злоумышленником с целью осуществления несанкционированного доступа. Получается, что установленная система по умолчанию не имеет должной защиты при физическом доступе к компьютеру. Злоумышленник может с легкостью получить полный доступ к системе.
Решение, которое может обезопасить от такого рода взлома ОС, заключается в установке пароля доступа к редактированию конфигурации менеджера загрузки системы. Об установке пароля на менеджер загрузки ОС можно прочитать в статье «Установка и настройка пароля на менеджер ОС GRUB».
Восстановление пароля root в дистрибутивах Linux
Дистрибутивы с включенным локальным входом root`a
Алгоритм восстановления пароля root в дистрибутивах с включенным локальным входом суперпользователя:
- При загрузке системы Вы попадаете в меню менеджера загрузки ОС, где списком отображены способы запуска ОС с доступными версиями ядра. В некоторых дистрибутивах используется графический режим (например Mandriva), который отключается клавишей <Esc>.
version 0.97 (639K lower / 129984K upper memory)
Use the ↑ and ↓ keys to select which entry is hightlighted.
Press enter to boot the selected OS, ‘e’ to edit the
commands before booting, or ‘c’ for a command-line.
В начале списка обычно располагается самое новое ядро, напротив которого Вам следует установить курсор и нажать клавишу <E> (Edit). В данном примере только одно доступное ядро. - Следующим шагом редактируем параметры загрузки ядра.
В этом списке ставим курсор на пункт, который начинается со слова kernel и нажимаем клавишу <E> (Edit).version 0.97 (639K lower / 129984K upper memory)
Use the ↑ and ↓ keys to select which entry is hightlighted.
Press enter to boot the selected OS, ‘e’ to edit the
commands before booting, or ‘c’ for a command-line. - К концу строки после пробела добавляем 1 и нажимаем <ENTER>.
<a1 resume=/dev/hda5 splash=silent vga=788 1
Этот добавленный параметр позволяет запустить систему в однопользовательском режиме (Single Mode) с правами root. В следующем окне нажимаем клавишу <B> (Boot). - После загрузки системы меняем пароль суперпользователя root. Для этого запускаем команду:
При смене пароля, система не будет спрашивать старый пароль, а сразу предложит ввести новый с последующим его повторным подтверждением.
sh-3.2# passwd root
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfullyПароль изменен.
- Далее <Ctrl>+<Alt>+<Delete> и при последующем старте системы можно будет зайти под учетной записью суперпользователя root.
Дистрибутивы с отключенным локальным входом root`a
К таким дистрибутивам относятся: Ubuntu, Kubuntu, Xubuntu, Edubuntu. Идеология этих дистрибутивов запрещает работать от имени суперпользователя. Поэтому в них по умолчанию отключен локальный вход root`a на компьютер. В таких ОС только восстановить пароль недостаточно. Нужно еще включить этот самый локальный вход.
Восстановление пароля в Ubuntu, Kubuntu, Xubuntu, Edubuntu:
- При загрузке системы Вы попадаете в меню менеджера загрузки ОС, где списком отображены способы запуска ОС с доступными версиями ядра. В начале списка обычно располагается самое новое ядро, напротив которого Вам следует установить курсор и нажать клавишу <E> (Edit).
- Следующим шагом редактируем параметры загрузки ядра. В этом списке ставим курсор на пункт, который начинается со слова kernel и нажимаем клавишу <E> (Edit).
Use the ↑ and ↓ keys to select which entry is highlighted Press ‘b’ to boot, ‘e’ to edit the selected command in the boot sequence, ‘c’ for a command-line, ‘o’ to open a new line after (‘O’ for before) the selected line, ‘d’ to remove the selected line, or escape to go back to the main menu.
- К концу строки после пробела добавляем:
В результате на экране получаем:
<-983b-4de7-Bba5-fe98ad772722 ro quiet rw init=/bin/bash
Жмем <ENTER> и затем клавишу <B> (Boot). - После загрузки системы меняем пароль root командой:
При смене пароля, система не будет спрашивать старый пароль, а сразу предложит ввести новый с последующим его повторным подтверждением.
Пароль изменен.
- Добавляем разрешение на локальный вход суперпользователю. Для этого нужно отредактировать конфигурационный файл /etc/gdm/gdm.conf. В разделе [SECURITY], находим параметр AllowRoot и меняем его значение на true:
# Открываем файл для редактирования
sudo nano /etc/gdm/gdm.conf
Ищем строку в разделе [SECURITY]:
И меняем параметр AllowRoot на true. Должно получиться так:
Закрываем файл, сохраняя внесенные изменения.
- Жмем <Ctrl>+<Alt>+<Delete> и при последующем старте системы можно будет зайти под учетной записью суперпользователя root.
Использование LiveCD для восстановления пароля root
Если по каким-то причинам Вы не можете восстановить пароль root вышеизложенными способами, то предлагаю рассмотреть последний общий способ восстановления. Этот способ подойдет для любой операционной системы Linux.
Суть последнего способа заключается в загрузке компьютера с LiveCD в root окружении вашего корневого раздела и смене пароля.
Использование LiveCD для восстановления пароля суперпользователя root:
- Загружаемся с LiveCD;
- Монтируем корневую файловую систему к директории /mnt. Про монтирование можно прочитать подробнее в статье «Команда mount в Linux или все о монтировании разделов, дисков, образов ISO и SMB ресурсов»
# Просматриваем структуру жесткого диска. Корневой раздел будет помечен символом /, именно он нам и нужен.
sudo fdisk -l
# Монтирование корневого раздела. В качестве точки монтирования директория /mnt.
sudo mount /dev/корневой раздел /mnt
- Добавляем root-окружение системе LiveCD:
sudo chroot /mnt
- Меняем стандартной командой пароль root:
sudo passwd root
При смене пароля, система не будет спрашивать старый пароль, а сразу предложит ввести новый с последующим его повторным подтверждением.
- Перезагружаем систему и входим под добавленной учетной записью root.
Из всего написанного выше можно сделать вывод, что восстановление утерянного пароля root не столь уж трудоемкая работа, с которой может справиться любой заинтересованный человек. Даже тот кому этого делать не положено. С точки зрения безопасности, вход в однопользовательский режим операционной системы требует дополнительного внимания.
Об этом должен знать и помнить каждый системный администратор!
Эксперт по Linux и Windows
Опытный системный администратор с большим стажем работы на крупном российском заводе. Иван является энтузиастом OpenSource и любителем Windows, проявляя высокую компетентность в обоих операционных системах.
Благодаря его технической грамотности и умению решать сложные задачи, Иван стал неотъемлемой частью команды нашего проекта, обеспечивая непрерывную авторскую работу.
Состояние перевода: На этой странице представлен перевод статьи Reset lost root password. Дата последней синхронизации: 13 октября 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
На этой странице вы сможете узнать, как сбросить забытый пароль суперпользователя. Существуют несколько способов, которые могут вам в этом помочь.
Важно: Недобросовестный пользователь может использовать указанные здесь методы для получения доступа к вашей системе. Неважно, насколько операционная система защищена от атак и как хороши ваши пароли: имея физический доступ к компьютеру, любой сможет это сделать, если вы, конечно, не выполните шифрование хранимых данных.
Если у вас есть установленный sudo и настроен доступ для группы wheel или для пользователя, чей пароль вы помните, вы можете сменить пароль root с помощью команды sudo passwd root.
Через отладочную консоль
- Добавьте параметр ядра
systemd.debug_shell. - Система загрузится как обычно, но запустит службу
debug-shell.service, которая запустит командный интерпретатор (/bin/sh) на консолиtty9. НажмитеCtrl+Alt+F9чтобы перейти в неё. - Используйте команду passwd для установки нового пароля суперпользователя.
- После завершения остановите
debug-shell.service.
Используя bash в качестве init
- Добавьте параметр ядра
init=/bin/bashв настройках вашего загрузчика. - Сейчас ваша корневая файловая система смонтирована только для чтения, поэтому перемонтируйте ее на чтение-запись командой
mount -n -o remount,rw /. - Используйте команду passwd для установки нового пароля суперпользователя.
- Перезагрузитесь с помощью команды
reboot -fи не забудьте свой пароль снова!
Примечание: Некоторые клавиатуры не распознаются должным образом при загрузке bash из GRUB, и вы не сможете ничего ввести в консоли. В этом случае вам остается лишь использовать другой способ.
При помощи LiveCD
- Загрузитесь с LiveCD и смонтируйте корневой раздел вашей основной системы.
- Используйте команду
passwd --root ТОЧКА_МОНТИРОВАНИЯ ИМЯ_ПОЛЬЗОВАТЕЛЯдля установки нового пароля (старый пароль запрошен не будет). - Размонтируйте корневой раздел.
- Перезагрузитесь и введите новый пароль.
This guide will show you how to reset a forgotten root password. Several methods are listed to help you accomplish this.
Warning: An attacker could use some of the methods mentioned below to break into your system. No matter how secure the operating system is or how good passwords are, having physical access amounts to loading an alternate OS and exposing your data, unless you use data-at-rest encryption.
Using the debug shell
- Append
systemd.debug_shellto the kernel parameters. - This will do a normal boot but start
debug-shell.servicewhich runs a root shell (/bin/sh) ontty9. PressCtrl+Alt+F9to access it. - Use the passwd command to create a new password for the root user.
- When done, stop
debug-shell.service.
Using bash as init
- Append the
init=/bin/bashkernel parameter to your boot loader’s boot entry. - Your root file system is mounted as read-only now, so remount it as read/write:
mount -n -o remount,rw /. - Use the passwd command to create a new password for the root user.
- Reboot by typing
reboot -fand do not lose your password again!
Note: Some keyboards may not be loaded properly by the init system with this method and you will not be able to type anything at the bash prompt. If this is the case, you will have to use another method.
Using a LiveCD
With a LiveCD a couple methods are available: change root and use the passwd command, or erase the password field entry directly editing the password file. Any Linux capable LiveCD can be used, albeit to change root it must match your installed architecture type. Here we only describe how to reset your password with chroot, since manual editing the password file is significantly more risky.
- Boot the LiveCD and mount the root partition of your main system.
- Use the
passwd --root MOUNT_POINT USER_NAMEcommand to set the new password (you will not be prompted for an old one). - Unmount the root partition.
- Reboot, and enter your new password.






