В общем случае, после внесения изменений в конфигурационные файлы загрузчика (файл /etc/default/grub или файлы /etc/grub.d/*)
для вступления изменений в силу следует выполнить команду обновления загрузчика update-grub.
При этом будет переписан файл /boot/grub/grub.cfg, соответственно все внесённые в него изменения будут утеряны.
Данная статья применима к:
Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
Astra Linux Special Edition РУСБ.10015-16 исп. 1
Astra Linux Common Edition 2.12
Установка и изменение пароля на загрузчик
Системный загрузчик GRUB2 поддерживает возможность задания паролей в открытом виде.
Многие инструкции предлагают именно такой способ.
В данной инструкции предлагается более безопасный способ задания пароля в виде хеша.
В любом случае, рекомендуется максимально ограничить доступ к файлу с паролем .
Для смены пароля системного загрузчика необходимо сгенерировать хеш нового пароля и заменить им старый:
Для генерации хеша выполнить команду и дважды ввести новый пароль:
Открыть в редакторе с правами суперпользователя файл /etc/grub.d/07_password (в Astra Linux Special Edition он уже существует, в Astra Linux Common Edition при первой установке пароля откроется пустой файл).
Например, для редактирования с помощью встроенного редактора с графическим интерфейсом kate можно воспользоваться командой:
#!/bin/bash
cat << EOF
set superusers="username"
password_pbkdf2 username grub.pbkdf2.sha512.10000.9C319610666...........
EOF
Цветом условно обозначены имя пользователя (красный) и ранее сгенерированный кеш (зелёный), в редакторе никаких цветов нет.
Сохранить файл, и выйти из редактора.
В Astra Linux Common Edition при первой установке пароля исправить права доступа к созданному новому файлу, разрешив его выполнение:
Возможно отключить запрос пароля grub, например для записи Windows. Для этого в /boot/grub/grub.cfg где --class os добавить --unrestricted
Запрет загрузки в режиме восстановления. Таймаут ожидания выбора при загрузке.
Для того, чтобы запретить варианты загрузки в режиме восстановления, нужно с правами суперпользователя открыть в редакторе файл /etc/default/grub:
раскомментировать строку
Дополнительно, в этом же файле можно уменьшить время ожидания при выборе варианта загрузки (по умолчанию - 5 секунд), например, совсем скрыв меню (в таком случае в меню НЕЛЬЗЯ будет попасть, зажав при загрузке клавишу Shift, и возможности выбора ОС/ядра не будет):
Для скрытия загрузчика с сохранением возможности переключения клавишей Shift на этап выбора ОС/ядра к параметру GRUB_TIMEOUT=0 добавить GRUB_HIDDEN_TIMEOUT=5:
GRUB_HIDDEN_TIMEOUT=5
Сохранить изменения, выйти из редактора.
Для того, чтобы эти изменения вступили в силу обновить загрузчик командой:
Пункты меню, позволяющие выбрать для загрузки режим восстановления, можно убрать из меню и путём редактирования файла /boot/grub/grub.cfg (см. ниже, но эти изменения не будут сохраняться после выполнения команды обновления загрузчика update-grub.
Запрет выбора загрузки ядра GENERIC
Для того, чтобы запретить все варианты загрузки, кроме варианта HARDENED , нужно с правами суперпользователя открыть в редакторе файл /boot/groob/grub/grub.cfg:
И закомментировать ненужные пункты меню, т.е. блоки кода, начинающиеся с menuentry, например:
#menuentry 'AstraLinuxCE GNU/Linux, с Linux 4.15.3-1-generic' --class astralinuxce --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.15.3-1-generic-advanced-f923f219-185e-4747-9066-6b09fd0103ae' {
# load_video
# insmod gzio
# if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
# insmod part_msdos
# insmod ext2
# set root='hd0,msdos1'
# if [ x$feature_platform_search_hint = xy ]; then
# search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 f923f219-185e-4747-9066-6b09fd0103ae
# else
# search --no-floppy --fs-uuid --set=root f923f219-185e-4747-9066-6b09fd0103ae
# fi
# echo 'Загружается Linux 4.15.3-1-generic …'
# linux /boot/vmlinuz-4.15.3-1-generic root=UUID=f923f219-185e-4747-9066-6b09fd0103ae ro quiet net.ifnames=0
# echo 'Загружается начальный виртуальный диск …'
# initrd /boot/initrd.img-4.15.3-1-generic
#}