Пароль на GRUB ставится в три шага: генерируешь PBKDF2-хеш командой grub-mkpasswd-pbkdf2, прописываешь его в /etc/grub.d/00_header (или 40_custom) через set superusers и password_pbkdf2, а затем пересобираешь конфиг: grub-mkconfig -o /boot/grub/grub.cfg. После этого загрузчик попросит логин и пароль, прежде чем загрузить систему или открыть редактирование пунктов меню. Вся настройка занимает минут пять и не требует дополнительных пакетов — всё уже есть в grub.
GRUB — первая программа, которая запускается на твоей машине. И именно в меню загрузчика проще всего навредить системе: нажать e и дописать в параметры ядра init=/bin/bash, чтобы получить root без пароля, или загрузить чужое ядро. Пароль закрывает эту дверь: без него нельзя ни загрузить защищённый пункт, ни открыть консоль, ни отредактировать запись.
e);c);--unrestricted;40_custom.Тут важно говорить честно. Пароль загрузчика — это замок на двери, а не сейф. Он не шифрует данные на диске: вытащи диск, подключи к другой машине — и все файлы доступны. Для этого нужен LUKS. Он не спасает от сброса NVRAM и не мешает загрузиться с флешки: человек с физическим доступом обойдёт его без труда. Проще говоря, пароль GRUB отпугивает любопытных и случайных людей, а не профессионала с отвёрткой. Про границы шифрования и TPM читай в статье про TPM2 в Arch, а про проверку подписей — в материале про Secure Boot через sbctl. Общие принципы защиты системы описаны на странице Security в ArchWiki.
GRUB не хранит пароль в открытом виде — только PBKDF2-хеш. Генерируется он одной командой:
grub-mkpasswd-pbkdf2
Программа попросит ввести пароль дважды и выведет строку вида:
grub.pbkdf2.sha512.10000.9D2B4A...B3F2
Этот хеш и нужно вставить в конфиг. Задать пароль в открытом виде можно и командой password, но так делать не стоит: любой, кто прочитает /etc/grub.d, узнает пароль.
Открой /etc/grub.d/00_header и добавь в конец:
set superusers="admin"
password_pbkdf2 admin grub.pbkdf2.sha512.10000.9D2B4A...B3F2
admin — логин суперпользователя, можешь назвать его как угодно. Подойдёт и /etc/grub.d/40_custom — там правки выглядят аккуратнее, особенно если ты уже добавлял туда свои пункты, например для оформления GRUB. Оба файла переживают пересборку конфига, в отличие от /boot/grub/grub.cfg, который генерируется заново.
Механика простая: как только задан superusers, все пункты меню требуют логин — кроме тех, что помечены флагом --unrestricted. Поэтому после добавления строк выше пересобери конфиг:
grub-mkconfig -o /boot/grub/grub.cfg
Перезагрузись. GRUB покажет меню, но при попытке выбрать пункт или нажать e попросит логин и пароль. Вводишь admin и свой пароль — и всё работает. Если пароль неверный, пункт останется locked.
Пункты, найденные через os-prober (например, Windows), тоже попадают под защиту. Если после пересборки Windows пропал из меню — загляни в статью про dualboot и пропавший Windows из GRUB.
Не всем нужен пароль на каждую загрузку. Часто хочется, чтобы система грузилась сама, а вот e и c были закрыты. Для этого пункты меню помечают --unrestricted: они загружаются без пароля, но редактирование и консоль всё равно требуют суперпользователя.
Если пункт добавляешь сам, флаг ставится прямо в объявлении:
menuentry "Мой Arch" --unrestricted {
...
}
Со стандартными пунктами из 10_linux сложнее: grub-mkconfig генерирует их без --unrestricted. Вариант — отредактировать /etc/grub.d/10_linux и добавить флаг в строку menuentry. Учти: при обновлении пакета grub правка слетит, и её придётся повторять. Поэтому многие выбирают простой путь — пароль на всё меню.
Забыл пароль — не паникуй. Система не заблокирована, просто загрузчик не пускает. Восстановление занимает несколько минут.
mount /dev/sdX2 /mnt (подставь свой).arch-chroot /mnt./etc/grub.d/00_header (или 40_custom) и удали строки set superusers и password_pbkdf2.grub-mkconfig -o /boot/grub/grub.cfg.Если GRUB вообще сломался и не доходит до меню — поможет материал про переустановку GRUB после поломки. А если /boot зашифрован через GRUB_ENABLE_CRYPTODISK, сначала разблокируй раздел, иначе grub-mkconfig не увидит ядра.
Пароль GRUB защищает данные на диске? Нет. Это аутентификация в загрузчике, а не шифрование. Данные защищает только LUKS.
Можно ли обойти пароль GRUB? Да, при физическом доступе: сброс NVRAM, загрузка с флешки, подключение диска к другой машине. Это защита от неподготовленных людей, а не от злоумышленника с инструментами.
Пароль будет спрашиваться при каждой загрузке?
Да, если защищены все пункты меню. Чтобы грузиться без пароля, пометь пункты --unrestricted.
Пароль GRUB и Secure Boot — одно и то же? Нет. Secure Boot проверяет подписи загружаемых файлов, а пароль GRUB — вход в меню загрузчика. Разница разобрана в статье про Secure Boot и sbctl.
Что делать, если забыл пароль?
Загрузиться с live-USB, сделать arch-chroot и убрать строки пароля из /etc/grub.d, затем пересобрать конфиг.
Пароль на GRUB — быстрая и честная защита загрузчика: ставится за пять минут, не требует пакетов и закрывает самый очевидный путь к системе — редактирование параметров загрузки. Но помни границы: это не шифрование диска и не защита от физического доступа. Для данных — LUKS, для проверки целостности — Secure Boot и TPM. Если ты только поставил Arch, загляни в статью про первый час после установки — там есть и другие полезные настройки.
Задай вопрос в чате — отвечаем быстро, по делу и без воды.
Комментарии