Для защиты обычного компьютера или сервера с установленным на нем дистрибутивом Linux имеет смысл поставить пароль на доступ к загрузчику GRUB. Делается это путем создания отдельного пользователя для него.
В статье мы пошагово расскажем, как поставить пароль на GRUB. Заодно осветим сопутствующие нюансы процедуры и возможные проблемы при ее выполнении.
Содержание статьи
Как поставить пароль на GRUB
Всю задачу можно разделить на три больших шага. Сначала идет генерация хэша пароля, следом нужно задать его путем изменения настроек, а в конце – обновить конфигурацию GRUB. Заодно мы расскажем, как включить загрузку системы без пароля, и проверим, все ли работает правильно.
1. Сгенерировать хэш пароля
За данное действие отвечает утилита grub-mkpasswd-pbkdf2. В случае с дистрибутивом Ubuntu она по умолчанию установлена в систему. Для генерации хэша пароля достаточно выполнить команду в терминале:
grub-mkpasswd-pbkdf2
А затем два раза ввести будущий пароль для GRUB. Результат выглядит так:
Полученный хэш – это длинная строка, которая начинается с grub.pbkdf2. Ее нужно скопировать и куда-нибудь сохранить, например, в отдельный документ.
При выполнении команды может возникнуть ошибка:
Она говорит о том, что в системе отсутствует пакет grub-common. А значит, его нужно загрузить вручную. Для этого обновите данные о приложениях:
sudo apt-get update
Сразу же после запустите установку недостающего пакета:
sudo apt install -y grub-common
Остается только сгенерировать хэш пароля способом, который описан в начале раздела. А мы переходим к следующему шагу.
2. Изменить настройки
Теперь нужно назначить супер-пользователя для GRUB. Это удобно делать через файл /etc/grub.d/00_header, отредактировав его содержимое. Удобнее сначала открыть текстовый документ, куда все было сохранено, и вставить команду следующего вида:
Вместо user_name во второй и третьей строке укажите предпочтительное имя супер-пользователя GRUB, а также замените хэш пароля (начиная с grub.pbkdf2) на свой. Полученный текстовый документ просто сверните, но не закрывайте.
Теперь перейдем к редактированию файла 00_header. В терминале выполните:
sudo nano /etc/grub.d/00_header
Затем пролистайте его содержимое до самого конца. Это очень удобно делать с зажатой клавишей Page Down на клавиатуре. А потом на новой строке вставьте ранее подготовленную команду из 4 строк, которая сохранена в текстовом документе.
Для сохранения изменений нажмите комбинацию клавиш Ctrl+S, а затем Ctrl+X для выхода из режима редактирования файла 00_header.
3. Обновить конфигурацию
Следующий шаг – обновление конфигурации GRUB для применения ранее внесенных изменений. За это действие отвечает команда в терминале:
sudo update-grub
4. Проверить работу
Чтобы проверить работу пароля, нужно перезагрузить компьютер, например, командой:
reboot
Как только появится интерфейс GRUB, у вас запросят сначала имя супер-пользователя, а затем и пароль.
5. Разрешить загрузку без пароля
Описанный способ имеет один важный недостаток – пароль будет требоваться каждый раз при входе в GRUB. Даже для простой загрузки системы. Но конфигурацию можно настроить таким образом, чтобы пароль был нужен только для редактирования каких-либо параметров загрузчика. А вход в меню будет неограниченным.
Для этого понадобится отредактировать файл /etc/grub.d/10_linux:
sudo nano /etc/grub.d/10_linux
В этом файле найдите вот такую сточку и добавьте в неё опцию --unrestricted:
Например:
Теперь сохраните внесенные изменения горячими клавишами Ctrl+S. Остается только обновить конфигурацию GRUB в терминале:
sudo update-grub
В результате при включении или перезагрузке ПК пароль вводить не придется. Но для доступа к дополнительным параметрам GRUB он потребуется.
Выводы
Установка защиты в виде пароля для GRUB во многих ситуациях будет очень полезной. Ведь злоумышленники, добравшись до интерфейса загрузчика, могут серьезно нарушить работу компьютера с Linux. В данной статье мы в пошаговом формате описали всю процедуру настройки.
Это поможет сделать вашу систему более безопасной, ведь обычный пароль суперпользователя очень легко сбросить. А вы ставите пароль на Grub? Напишите в комментариях!
https://youtu.be/0tgBJ6xwCzo
А если, как здесь, установил на SSD пароль на диск, получается он ещё до грю идёт. Значит сам грю тоже ведь зашифрован и отдельно на него не 6адо ставить пароль?)
Просто фишка в том,что ещё есть параллельная система, но на HDD, и там нет пароля ни на грю, ни на диск. Основная для меня- это именно на SSD, на HDD как бы по запас.
******! Поставил пароль, теперь не могу зайти в систему, пишет что доступ запрещён. Хотя я точно помню и пароль и имя пользователя. Хеш пароля сохранил на флешку. Что делать?
Записать образ ubuntu на флещку или диск, загрузиться с него в терминал.
Смонтировать свой диск (например это /dev/sda3/ в /mnt): sudo mount /dev/sda3 /mnt
Если был отдельный /boot раздел (например sda2), монтируем его: sudo mount /dev/sda2 /mnt/boot
Далее привязываем каталоги:
sudo mount --bind /dev /mnt/dev
sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc
Создаем окружение:
sudo chroot /mnt
Потом стандартно:
правим /etc/grub.d/00_header (удаляем, что добавляли).
выполняем update-grub или grub-mkconfig -o /boot/grub/grub.cfg
Далее размонтируем все, что примонтировали:
sudo umount /dev/sda3
sudo umount /dev/sda2
sudo umount /mnt/dev
sudo umount /mnt/sys
sudo umount /mnt/proc
и перезагружаемся.
Очень важно!!!!
Править нужно не /etc/grub.d/00_header, а /etc/grub.d/40_header
Иначе потом не залогинитесь в grub.
нет такого файла...
а я ставлю пароль на grub, ага