GRUB (GRand Unified Bootloader) загружает ОС и даёт доступ к параметрам ядра, recovery и командной строке. Если физический доступ к машине возможен, без пароля кто угодно может подменить root или загрузиться с live-носителя через правки menuentry. Пароль PBKDF2 на superuser в GRUB не шифрует диск, но закрывает правку меню и shell до входа в систему.
Что именно защищается
После настройки GRUB запрашивает логин и пароль при попытке:
- редактировать пункты меню (клавиша
e); - войти в командную строку GRUB (
c); - при полной защите пунктов – иногда и при выборе загрузки, если не сделать исключения через
--unrestricted.
Это дополнение к шифрованию диска (LUKS) и паролю BIOS/UEFI, а не замена им.
Пакеты
На Debian и Ubuntu обычно достаточно grub-common (утилита grub-mkpasswd-pbkdf2):
sudo apt update sudo apt install grub-common
На RHEL/Alma/Rocky пакеты другие (grub2-tools), пути конфигов тоже. Ниже – схема для Debian/Ubuntu с update-grub.
Хеш пароля PBKDF2
sudo grub-mkpasswd-pbkdf2
Дважды введите пароль. На выходе строка вида:
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.<hash>
Скопируйте целиком фрагмент grub.pbkdf2.sha512.10000.... – его вставите в конфиг. Исходный пароль в открытом виде в файлы не пишите.
Конфиг: /etc/grub.d/40_custom
Правки в 40_custom переживут update-grub, в отличие от ручной правки только /boot/grub/grub.cfg.
sudo nano /etc/grub.d/40_custom
В конец файла (после заголовка exec tail) добавьте, подставив свой хеш:
set superusers="root" password_pbkdf2 root grub.pbkdf2.sha512.10000.<hash>
Имя superuser здесь условное (root – просто логин GRUB, не системный root). Можно задать другое имя и несколько пользователей.
Если нужно, чтобы обычная загрузка ОС шла без пароля, а защита срабатывала только на edit/shell, в сгенерированных menuentry обычно добавляют --unrestricted (через правки скриптов в /etc/grub.d/ или патч шаблонов). Без этого GRUB может спрашивать пароль и при выборе пункта загрузки – заранее продумайте сценарий, особенно на удалённых серверах с IPMI/KVM.
Применение
sudo update-grub
На части дистрибутивов эквивалент – grub2-mkconfig -o /boot/grub2/grub.cfg. После перезагрузки проверьте: e на пункте меню должно запросить учётку GRUB.
Если забыли пароль
Без доступа к загрузочному меню правка GRUB с live-USB или recovery (если оно не закрыто) всё ещё возможна: смонтировать корень, поправить 40_custom / grub.cfg, пересобрать конфиг. Поэтому пароль GRUB – барьер от случайного и «быстрого» вмешательства, а не полная защита от владельца live-диска. Храните пароль в менеджере секретов; перед экспериментами сделайте копию /etc/grub.d/40_custom.
Краткий чеклист
- бэкап
40_customи понимание, как откатиться с live-среды; - сложный пароль, только PBKDF2-хеш в конфиге;
update-grubи проверка edit/shell;- отдельно – шифрование диска и пароль UEFI, если угроза – физический доступ.
Итог: пароль superuser в GRUB – быстрый и стандартный шаг для рабочих станций и bare-metal, где меню загрузки доступно локально. На VPS с консолью провайдера смысл тот же, но восстановление проще через панель хостера.

