Single user mode — режим запуска системы, позволяющий выполнять администраторские задачи когда стандартный доступ невозможен. Например, если утерян пароль суперпользователя.
Будем рассматривать этот режим работы системы на примере Kali Linux, но принципы применимы для любого Linux дистрибутива.
Single user mode в Linux
Single user mode позволяет зайти в систему без ввода пароля суперпользователя. Чтобы перейти в режим нужно передать его ядру с помощью дополнительных параметров, которые устанавливаются в меню загрузчика системы.
При старте системы нужно вызвать меню загрузчика. Обычно F5 или ESC на клавиатуре (также указывается в подсказке на экране).
Затем для выбранной системы E (edit), это позволит редактировать параметры, передаваемые ядру.
Чтобы запуститься в режиме одного пользователя нужно найти строку, которой загружается ядро. Она начинается с kernel или linux, в строке нужно удалить параметры quite и splash.
Эти параметры дают системе указание загружаться без подробного вывода в консоль и с заставкой операционной системы.
Без параметров будет виден процесс загрузки и отладочная информация.
Затем дописываем вместо удаленных параметров один новый:
single init=/bin/bash
Он укажет системе, что сразу нужно передавать управление оболочке пользователя — /bin/bash
После этого комбинацией Shift + X (или F10 — указано в подсказке) запускаем систему.
Авторизовавшись по SSH root можно задавать новый пароль командой passwd и потом повторив процесс в обратном порядке загрузить систему в нормальном режиме.
Может потребоваться перемонтировать файловую систему в режим чтения-записи — если возникает ошибка Authentication token manipulation error.
Другой способ восстановления доступа к серверу
В случае если авторизоваться в single user mode не удаётся — для того чтобы получить доступ к файловой системе можно использовать режим восстановления.
Он доступен у большинства провайдеров. Для физических серверов режим восстановления — это подключённый внешний носитель с загрузочной операционной системой. Она нужна для диагностики неполадок с сервером и работы с его диском на уровне файлов.
При использовании внешнего носителя можно загрузиться с него, примонтировать диск сервера в /mnt, например, и потом выполнить chroot.
В chroot можно сменить пароль root, разобраться с причинами возможных сбоев. Отключением внешнего носителя и перезагрузкой сервер после этого возвращается в нормальный режим работы.