Как получить доступ к root на Linux-сервере, имея физический доступ к нему?

«Как получить доступ к root на Linux-сервере, имея физический доступ к нему?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Физический доступ к серверу в дата-центре или облачной среде — это сценарий восстановления после сбоя. Стандартные методы:

1. Однопользовательский режим (Single User Mode) через GRUB:

  • Перезагрузите сервер.
  • В меню загрузчика GRUB выберите нужное ядро и нажмите e для редактирования.
  • Найдите строку, начинающуюся с linux или linux16/linuxefi.
  • В конце этой строки добавьте параметр init=/bin/bash.
  • Нажмите Ctrl+X или F10 для загрузки. Вы окажетесь в оболочке bash с правами root.
  • Смонтируйте корневую файловую систему в режиме чтения-записи: mount -o remount,rw /.

2. Режим восстановления (Recovery Mode): В том же меню GRUB часто есть пункт "Advanced options" -> "Recovery mode", который загружает систему с доступом root.

3. Сброс пароля root (если доступ заблокирован): После входа через однопользовательский режим выполните:

passwd root
sync
reboot -f

Критическое замечание для DevOps: В управляемой инфраструктуре такие методы используются только в крайних случаях. Конфигурация серверов должна быть неизменяемой (immutable infrastructure), а доступ — контролироваться через централизованные системы (PAM, секреты в HashiCorp Vault). После любого ручного вмешательства сервер следует пересоздать из конфигурационного шаблона (Terraform, CloudFormation) или образа (Packer, AMI).