Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


unix-linux:debian:stretch:how-to-restore-root-access-to-debian-linux-if-sudo-does-not-work

Как восстановить доступ к Debian Linux в случае проблем с sudo или утратой root-пароля

В некоторых ситуациях может получиться так, что мы потеряем административный доступ к серверу на базе Debian GNU/Linux. Например, к такому исходу могут привести некорректные действия администратора по настройке механизма sudo (ошибки при правке файлов /etc/sudoers и/или /etc/sudoers.d/*) и, как следствие, получение ошибки «Username is not in the sudoers file» при любых дальнейших попытках использования sudo. Иногда бывают ситуации, когда локальный доступ к серверу есть, а данные административной учётной записи недоступны и требуется восстановить административный доступ к серверу.


Загрузка в recovery mode

В типичных ситуациях в Linux имеется режим восстановления Recovery Mode, который, как правило, доступен из загрузчика ОС. В этом режиме наша Linux-система доступна в режиме супер-пользователя root, и мы можем исправить в ней имеющиеся у нас проблемы, например внести корректировки в файлы sudo или добавить/изменить учётные данные локального администратора.

Для того, чтобы попасть в меню загрузки, в процессе запуска ОС Debian нажимаем кнопку Shift. В появившемся меню загрузчика GRUB выбираем расширенный режим загрузки:

Затем выбираем интересующее нас ядро Linux в режиме recovery mode

Однако в случае с Debian, где супер-пользователь root в конфигурации по умолчанию выключен, мы можем получить сообщение о невозможности загрузки консоли восстановления «Cannot open access to console, the root account is locked»:

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


Нестандартная загрузка

В процессе загрузки в GRUB выбираем в списке ядер нужное нам ядро (режим recovery mode здесь уже не важен) и нажимаем «e» для редактирования параметров загрузки.

Находим строку начинающуюся с «linux …»

В конце строки меняем значение «ro» на «rw», а в самом конце строки дописываем вызов оболочки «init=/bin/bash».

После чего для продолжения загрузки жмём F10

Теперь мы получили беспарольный root-доступ к нашему серверу. Здесь можно исправить имеющиеся у нас проблемы, например внести корректировки в файлы sudo. После внесения нужных правок система может быть загружена обычным образом (все сделанные нами ранее изменения в GRUB были временными).


Дополнительные источники информации:


Проверено на следующих конфигурациях:

Версия ОС
Debian GNU/Linux Stretch 9.4

Автор первичной редакции:
Алексей Максимов
Время публикации: 13.06.2018 15:45

Обсуждение

ВладимирВладимир, 25.03.2020 18:52
На debian 10 buster пишет: run-init: can't execute 'bin/bash' : No such file or directory
slothsloth, 11.02.2021 10:57
Потому что указывать надо абсолютный путь от корня: /bin/bash. Обратите внимание на слеш в начале пути.
Ваш комментарий:
 
unix-linux/debian/stretch/how-to-restore-root-access-to-debian-linux-if-sudo-does-not-work.txt · Последнее изменение: 13.06.2018 16:28 — Алексей Максимов

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki