В общем случае, после внесения изменений в конфигурационные файлы загрузчика (файл /etc/default/grub или файлы /etc/grub.d/*)
для вступления изменений в силу следует выполнить команду обновления загрузчика update-grub.

При этом будет переписан файл /boot/grub/grub.cfg, соответственно все внесённые в него изменения будут утеряны.



Данная статья применима к:

  • ОС ОН Орёл 2.12
  • ОС СН Смоленск 1.6


Установка и изменение пароля на загрузчик

Системный загрузчик GRUB2 поддерживает возможность задания паролей в открытом виде.
Многие инструкции предлагают именно такой способ.

В данной инструкции предлагается более безопасный способ задания пароля в виде хеша.

В любом случае, рекомендуется максимально ограничить доступ к файлу с паролем .

Для смены пароля системного загрузчика необходимо сгенерировать хеш нового пароля и заменить им старый:

Для генерации хеша выполнить команду и дважды ввести новый пароль:

grub-mkpasswd-pbkdf2

Полученный хеш (начиная со слова grub) скопировать в буфер (например, выделив его с помощью мыши, и нажав правую кнопку мыши выбрать "копировать").

Открыть в редакторе с правами суперпользователя файл /etc/grub.d/07_password (в ОС СН Смоленск он уже существует, в ОС ОН Орёл при первой установке пароля откроется пустой файл).
Например, для редактирования с помощью встроенного редактора с графическим интерфейсом kate можно воспользоваться командой:

sudo kate /etc/grub.d/07_password

В результате редактирования должен получиться текст вида:

#!/bin/bash

cat << EOF
set superusers="
username"
password_pbkdf2
username grub.pbkdf2.sha512.10000.9C319610666...........
EOF

Цветом условно обозначены имя пользователя (красный) и ранее сгенерированный кеш (зелёный), в редакторе никаких цветов нет.

Сохранить файл, и выйти из редактора.

В ОС ОН Орёл при первой установке пароля исправить права доступа к созданному новому файлу, разрешив его выполнение:

sudo chmod 700 /etc/grub.d/07_password

Для того, чтобы эти изменения вступили в силу обновить загрузчик командой:

sudo update-grub


Возможно отключить запрос пароля grub, например для записи Windows. Для этого в /boot/grub/grub.cfg где --class os добавить --unrestricted


Запрет загрузки в режиме восстановления. Таймаут ожидания выбора при загрузке.

Для того, чтобы запретить варианты загрузки в режиме восстановления, нужно с правами суперпользователя открыть в редакторе файл /etc/default/grub:

sudo kate /etc/default/grub

раскомментировать строку

GRUB_DISABLE_RECOVERY="true"

Дополнительно, в этом же файле можно уменьшить время ожидания при выборе варианта загрузки (по умолчанию - 5 секунд), например, вообще скрыв меню (но в таком случае в меню можно будет попасть, зажав при загрузке клавишу Shift):

GRUB_TIMEOUT=0

Сохранить изменения, выйти из редактора.

Для того, чтобы эти изменения вступили в силу обновить загрузчик командой:

sudo update-grub

Пункты меню, позволяющие выбрать для загрузки режим восстановления, можно убрать из меню и путём редактирования файла /boot/grub/grub.cfg (см. ниже, но эти изменения не будут сохраняться после выполнения команды обновления загрузчика update-grub.

Запрет выбора загрузки ядра GENERIC

Для того, чтобы запретить все варианты загрузки, кроме варианта HARDENED , нужно с правами суперпользователя открыть в редакторе файл /boot/groob/grub/grub.cfg:

sudo kate /boot/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
#}



Эти изменения не будут сохраняться после выполнения команды обновления загрузчика update-grub, но лучше способа пока нет.