Настройка сервера Linux и Windows
ITShaman - Сайт для АЙТИшников!
"Машины должны работать. Люди должны думать."
(девиз компании IBM)

Восстановление пароля для root или угроза безопасности из коробки в Linux

Если Вы забыли пароль и не можете получить доступ к операционной системе? То эта статья для Вас!

В статье собрана исчерпывающая информация, способная помочь отредактировать пароль root в операционной системе Линукс. Способы восстановления подойдут абсолютно для любых дистрибутивов Linux.

В то же время эта статья даст пищу для размышлений на тему незащищенности менеджера загрузки ОС при физическом доступе к Linux машине. Злоумышленник может получить привилегированный доступ к компьютеру или серверу, войдя в однопользовательский режим и сменив пароль root. При этом ему не требуется знать ни единого пароля системы.

1. Введение
Наверх


Есть ситуации, когда требуется войти в систему под root, но пароль неизвестен. Общий механизм восстановления заключается в осуществлении загрузки системы в однопользовательском режиме и редактировании пароля. Этот доступ можно получить только отредактировав конфигурацию менеджера загрузки ОС. Если по какой-то причине этого сделать нельзя (установлен пароль на изменение запуска, используется «самописный» загрузчик и т.д.), то следует использовать LiveCD любого доступного дистрибутива Linux.

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

Решение, которое может обезопасить от такого рода взлома ОС, заключается в установке пароля доступа к редактированию конфигурации менеджера загрузки системы. Об установке пароля на менеджер загрузки ОС можно прочитать в статье "Установка и настройка пароля на менеджер ОС GRUB".

2. Восстановление пароля root в дистрибутивах Linux


2.1 Дистрибутивы с включенным локальным входом root`a
Наверх

К этому списку относится большинство дистрибутивов Linux. Проще говоря, это дистрибутивы, в которых можно залогиниться в системе в качестве root`a. Все примеры, приведенные ниже, относятся к дистрибутиву Mandriva.

Алгоритм восстановления пароля root в дистрибутивах с включенным локальным входом суперпользователя:

  1. При загрузке системы Вы попадаете в меню менеджера загрузки ОС, где списком отображены способы запуска ОС с доступными версиями ядра. В некоторых дистрибутивах используется графический режим (например Mandriva), который отключается клавишей <Esc>.
    GNU GRUBversion 0.97 (639K lower / 129984K upper memory)
    linux
    linux-nonfb
    failsafe
    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). В данном примере только одно доступное ядро.
  2. Следующим шагом редактируем параметры загрузки ядра.
    GNU GRUBversion 0.97 (639K lower / 129984K upper memory)
    kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=linux root=/dev/hda1→
    initrd (hd0,0)/boot/initrd.img
    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.
    В этом списке ставим курсор на пункт, который начинается со слова kernel и нажимаем клавишу <E> (Edit).
  3. К концу строки после пробела добавляем 1 и нажимаем <ENTER>.
    [ Minimal BASH-like line editing is supported. Fot the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ESC at any time exits. ]

    <a1 resume=/dev/hda5 splash=silent vga=788 1
    Этот добавленный параметр позволяет запустить систему в однопользовательском режиме (Single Mode) с правами root. В следующем окне нажимаем клавишу <B> (Boot).
  4. После загрузки системы меняем пароль суперпользователя root. Для этого запускаем команду:
    # passwd root
    При смене пароля, система не будет спрашивать старый пароль, а сразу предложит ввести новый с последующим его повторным подтверждением.
    sh-3.2# passwd root
    New UNIX password:
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully
    Пароль изменен.
  5. Далее <Ctrl>+<Alt>+<Delete> и при последующем старте системы можно будет зайти под учетной записью суперпользователя root.

2.2 Дистрибутивы с отключенным локальным входом root`a
Наверх

К таким дистрибутивам относятся: Ubuntu, Kubuntu, Xubuntu, Edubuntu. Идеология этих дистрибутивов запрещает работать от имени суперпользователя. Поэтому в них по умолчанию отключен локальный вход root`a на компьютер. В таких ОС только восстановить пароль недостаточно. Нужно еще включить этот самый локальный вход.

Восстановление пароля в Ubuntu, Kubuntu, Xubuntu, Edubuntu:

  1. При загрузке системы Вы попадаете в меню менеджера загрузки ОС, где списком отображены способы запуска ОС с доступными версиями ядра. В начале списка обычно располагается самое новое ядро, напротив которого Вам следует установить курсор и нажать клавишу <E> (Edit).
  2. Следующим шагом редактируем параметры загрузки ядра. В этом списке ставим курсор на пункт, который начинается со слова kernel и нажимаем клавишу <E> (Edit).
    uuid b01b2698-983b-4de7-8ba5-fe9Bad772722
    kernel /boot/vnlinuz-2.6.27-9-generic boot=UUID=b01b2698-983b-4de7→
    initrd /boot/initrd.img-2.6.27-9-generic
    quiet
    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.
  3. К концу строки после пробела добавляем:
    # rw init=/bin/bash
    В результате на экране получаем:
    [ Minimal BASH-like line editing is supported. Fot the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ESC at any time exits. ]

    <-983b-4de7-Bba5-fe98ad772722 ro quiet rw init=/bin/bash
    Жмем <ENTER> и затем клавишу <B> (Boot).
  4. После загрузки системы меняем пароль root командой:
    # passwd root

    При смене пароля, система не будет спрашивать старый пароль, а сразу предложит ввести новый с последующим его повторным подтверждением.

    root@(none):/# passwd root
    New UNIX password:
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully
    Пароль изменен.
  5. Добавляем разрешение на локальный вход суперпользователю. Для этого нужно отредактировать конфигурационный файл /etc/gdm/gdm.conf. В разделе [SECURITY], находим параметр AllowRoot и меняем его значение на true:
    # sudo nano /etc/gdm/gdm.conf
    # Открываем файл для редактирования
    Ищем строку в разделе [SECURITY]:
    AllowRoot=false
    И меняем параметр AllowRoot на true. Должно получиться так:
    AllowRoot=true
    Закрываем файл, сохраняя внесенные изменения.
  6. Жмем <Ctrl>+<Alt>+<Delete> и при последующем старте системы можно будет зайти под учетной записью суперпользователя root.

3. Использование LiveCD для восстановления пароля root
Наверх


Если по каким-то причинам Вы не можете восстановить пароль root вышеизложенными способами, то предлагаю рассмотреть последний общий способ восстановления. Этот способ подойдет для любой операционной системы Linux.

Суть последнего способа заключается в загрузке компьютера с LiveCD в root окружении вашего корневого раздела и смене пароля.

Использование LiveCD для восстановления пароля суперпользователя root:

  1. Загружаемся с LiveCD;
  2. Монтируем корневую файловую систему к директории /mnt. Про монтирование можно прочитать подробнее в статье "Команда mount в Linux или все о монтировании разделов, дисков, образов ISO и SMB ресурсов"
    # sudo fdisk -l
    # Просматриваем структуру жесткого диска. Корневой раздел будет помечен символом /, именно он нам и нужен.
    # sudo mount /dev/корневой раздел /mnt
    # Монтирование корневого раздела. В качестве точки монтирования директория /mnt.
  3. Добавляем root-окружение системе LiveCD:
    #sudo chroot /mnt
  4. Меняем стандартной командой пароль root:
    #sudo passwd root

    При смене пароля, система не будет спрашивать старый пароль, а сразу предложит ввести новый с последующим его повторным подтверждением.

    root@ubuntu#sudo passwd root
    New UNIX password:
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully
  5. Перезагружаем систему и входим под добавленной учетной записью root.

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

Об этом должен знать и помнить каждый системный администратор!

Статья опубликована 17.05.2009 · Автор статьи: Зюзгин Иван
Статья относится к linux, ubuntu, debian, пароль, безопасность
Случайные 7 статей:
  1. Как установить принтер Canon LBP-2900 в Linux Ubuntu?
  2. Неправильно закрываются терминальные сессии после закрытия приложения
  3. Silverlight под Linux Ubuntu
  4. Геораспределенный кластер на Windows 2008 Server
  5. Удаляем Winlock вручную или как разблокировать Windows
  6. Скрытые возможности браузера или about:адреса для Opera
  7. Кодеки для Ubuntu или подключение репозитория Medibuntu
Комментарии [23]
  1. Iliya87 #
    31 Май, 03:49

    Мне картинки понравились!

  2. Lext0r #
    1 Июнь, 14:23

    В Убунте не работает

  3. Mut@NT #
    20 Июнь, 07:56

    Все работает, а точнее – http://itshaman.ru/articles/12/passwd-root-linux#22
    Смотрите где-то ошиблись

  4. Николай #
    10 Август, 05:02

    В Ubuntu 9.04 восстановил пароль, спасибо большое!

  5. Павел #
    20 Август, 02:07

    В Ubuntu 9.4 server пункт 5 пропускайте

  6. Mut@NT #
    20 Август, 06:39

    5 пункт нужно пропускать только в том случае, если разрешен локальный вход root

  7. Whu #
    2 Сентябрь, 06:12

    На RHEL5 Server нет /etc/gdm/gdm.conf

  8. Mut@NT #
    2 Сентябрь, 20:55

    >Whu
    GDM – это GNOME-приложение, работающие под иксами.
    Разве на сервере RHEL убрана возможность логиниться под суперпользователем?

  9. d2501 #
    14 Сентябрь, 02:23

    спасибо, а как можно отслеживать single-user mode? его можно отключить? буду признателен за ссылки.

  10. Mut@NT #
    14 Сентябрь, 10:40

    Отключить нельзя. Это как БЕЗОПАСНЫЙ РЕЖИМ в Windows.
    Можно поставить пароль на изменение GRUB:
    http://itshaman.ru/articles/14/password-grub

  11. AlexUnder Construction #
    19 Май, 08:53

    Из всего написанного выше можно сделать вывод, что восстановление утерянного пароля root не столь уж трудоемкая работа, с которой может справиться любой заинтересованный человек.
    Восстановить – нельзя. Можно только поменять.
    И вообще, следует помнить, что данные, расположенные на нешифрованном разделе, можно получить при физическом доступе к серверу под любой операционной системой. Но! В том же Linux есть средства для шифрования разделов “из коробки”. Если, например, будут зашифрованы все разделы кроме /boot (который можно вообще на флэшку вынести), а станция/сервер будет залочен (консоль заблокирована), то, не зная пароля, доступ к данным нельзя будет получить даже при физическом доступе. Данные можно будет только испортить.

  12. eonsio75 #
    24 Май, 04:48

    Вот хоть убейте не могу найти в директории (ets) /etc/gdm/gdm.conf, все в доль и поперек излазил, а фишка в чем в том что физически я захожу под рутом, а через путти не могу не пускает.

  13. Mut@NT #
    26 Май, 18:21

    eonsio75: Вот хоть убейте не могу найти в директории (ets) /etc/gdm/gdm.conf, все в доль и поперек излазил, а фишка в чем в том что физически я захожу под рутом, а через путти не могу не пускает.

    Вроде теперь нет этого конфигурационного файла в Ubuntu. Наверное, теперь это делать нужно так:
    “http://help.ubuntu.ru/wiki/karmic_gdm_внешний_вид”:http://help.ubuntu.ru/wiki/karmic_gdm_внешний_вид

  14. my3uka #
    18 Июль, 10:48

    Да, спасибо, а то сидел долго не винде и забыл пароль для root’a

  15. alligator #
    7 Май, 17:37

    Это не уязвимость. Имея физичиский доступ, можно запуститься с live-cd и сменить права к любому файлу. Причём совсем не обязательно иметь точно такой же дистрибутив на cd. Намного важнее уязвимости, которые можно использовать удалённо, а значит на них надо обращять особое внимание.

  16. Mut@NT #
    12 Май, 06:29

    alligator: Это не уязвимость. Имея физичиский доступ, можно запуститься с live-cd и сменить права к любому файлу. Причём совсем не обязательно иметь точно такой же дистрибутив на cd. Намного важнее уязвимости, которые можно использовать удалённо, а значит на них надо обращять особое внимание.

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

  17. Неизвестный #
    9 Март, 18:27

    Спасибо автору.
    На OpenSUSE 12.1 сработал вариант 2.2.
    Немного повозился пока нашел вариант, но сработало все хорошо.

  18. Юрий #
    28 Апрель, 20:54

    Помогло в AltLinux 14 Cobalt – спасибо – правда сперва думал не выйдет – загрузчик Acronics стоит при выборе систем перед загрузкой ) – а там просто надо тут же “E” нажать и тогда все идет как обычно )

  19. BiondoDante2303 #
    22 Ноябрь, 17:43

    я все уже сделал и вот у меня где надо ввести пароль буквы цыфры не пишутся на hp655

  20. Андрэ #
    6 Март, 05:09

    BiondoDante2303: буквы цыфры не пишутся на hp655

    КОмпьютер тут ни при чем — в Linux при вводе пароля в консоли он принципиально не пишется. Сделано, на сколько мне известно, для того чтобы нельзя было оценить длину пароля по количеству звездочек)))
    Это не баг, это фича любой *nix системы. Не пишутся, но — вводятся.

  21. Евгений #
    30 Декабрь, 15:09

    нету kernel что делать?

  22. Евген #
    29 Март, 09:14

    Изменл пароль а вот перезагрузиьь не могу.

  23. Ivan Semin #
    12 Апрель, 18:10

    С лайв сиди метод помог

Имя (обязательное поле)
e-mail (обязательное поле) Сайт
Текст комментария:
IT-новости
Популярное
Облако тегов
При цитировании документа активная ссылка на сайт обязательна.
Администрирование и настройка серверов, рабочих станций на базе ОС Linux и Windows. www.itshaman.ru - Настройка Linux и Windows © 2009 - 2018