Для защиты обычного компьютера или сервера с установленным на нем дистрибутивом 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? Напишите в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
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.