Сначала давайте посмотрим, что в итоге должно получится.
- Пароль на редактирование Grub 2 настроек (клавиша E)
- Пароль на загрузку Windows (у меня установлено две операционных системы)
- Пароль на ввод команд (клавиша C)
Работы предстоит нам не мало, но если будете соблюдать инструкцию все без проблем получится.
- Открываем Терминал и выполняем команду
sudo grub-mkpasswd-pbkdf2
Вводим
пароль (я ввел цифры), который будем вводить при
редактировании Grub 2 и запуска Windows
После ввода пароля появится строка, типа
Your PBKDF2 is grub.pbkdf2.sha512.10000.1D1D32A1
DBCFB6A80ECCF4EF35BA6AD187C63DEC85BE0E57
951A790E8904DEBB90D530D1D156A1920850ABD1
1D1099BED609A523E9746E38ABA8C98BD8024EC6
.4A830D3AFC70085DA50B761603A6BA59F7750EEB
C05223BE537A60A6FCF0BB2A6F458718E94634598
03B0945825E0299EB844929F0C0FEEB82AF8C33D01081BB
это наш зашифрованный
пароль, что задали выше, сохраните где то область, которая начинается со слова
grub.pbkdf2.sha....... и т.д., типа
grub.pbkdf2.sha512.10000.1D1D32A1
DBCFB6A80ECCF4EF35BA6AD187C63DEC85BE0E57
951A790E8904DEBB90D530D1D156A1920850ABD1
1D1099BED609A523E9746E38ABA8C98BD8024EC6
.4A830D3AFC70085DA50B761603A6BA59F7750EEB
C05223BE537A60A6FCF0BB2A6F458718E94634598
03B0945825E0299EB844929F0C0FEEB82AF8C33D01081BB
- В Терминале далее выполняем команду, которая создаст файл 05_password по пути /etc/grub.d/
sudo touch /etc/grub.d/05_password
- Далее открываем только что созданный файл командой
sudo gedit /etc/grub.d/05_password
- Вписываем и сохраняем файл
echo "Setting password protection..." >&2
cat << EOF
set superusers="ozone"
password_pbkdf2 ozone
grub.pbkdf2.sha512.10000.1D1D32A1DBCFB6A80ECCF4EF35BA6AD187C63DEC85BE0E57
951A790E8904DEBB90D530D1D156A1920850ABD1
1D1099BED609A523E9746E38ABA8C98BD8024EC6
.4A830D3AFC70085DA50B761603A6BA59F7750EEB
C05223BE537A60A6FCF0BB2A6F458718E94634598
03B0945825E0299EB844929F0C0FEEB82AF8C33D01081BB
echo "Setting password protection..." >&2 - комментарии которые будет отображаться при обновлении Grub 2
set superusers="ozone" - имя пользователя, который сможет редактировать любые пункты меню
password_pbkdf2
ozone - я задал имя, что и выше
grub.pbkdf2.sha - это зашифрованный пароль, о котором я говорил (нужно подставить свой!)
- Далее выполняем команду, которая снимает права на чтения и редактирования нашего файла, что создали выше, командой
sudo chmod u+x,go-rw /etc/grub.d/05_password
- После этого обновляем конфигурацию Grub 2, командой
sudo update-grub
- Продолжаем в Терминале, открывая файл 30_os-prober командой
sudo gedit /etc/grub.d/30_os-prober
- И ищем строки, начинающиеся с слова menuentry (я искал через Ctrl+F)
У меня их четыре, привожу их ниже
menuentry "${LONGNAME} (${2}-bit) (on ${DEVICE})" --class osx --class darwin --class os {
menuentry "${LONGNAME} (on ${DEVICE})" --class windows --class os {
menuentry "${LLABEL} (on ${DEVICE})" --class gnu-linux --class gnu --class os {
menuentry "${LONGNAME} (on ${DEVICE})" --class hurd --class gnu --class os {
Которые нужно отредактировать, что бы получилось так (приведу пример на самой верхней найденной строке)
menuentry "${LONGNAME} (${2}-bit) (on ${DEVICE})" --users ozone {
то есть, что бы вышло вместо четырех выше строк, вот такие строки
menuentry "${LONGNAME} (${2}-bit) (on ${DEVICE})" --users ozone {
menuentry "${LONGNAME} (on ${DEVICE})" --users ozone {
menuentry "${LLABEL} (on ${DEVICE})" --users ozone {
menuentry "${LONGNAME} (on ${DEVICE})" --users ozone {
где, параметр
users ozone - это пользователь, который сможет редактировать Grub 2 и загружать Windows операционную систему
- Сохраняем только что редактируемый файл
- Обязательно обновляем Grub 2, командой
sudo update-grub
- Перед последним этапом будет создание файла 31_sleep, командой
sudo touch /etc/grub.d/31_sleep
- Редактируем только что созданный файл, командой
sudo gedit /etc/grub.d/31_sleep
- Вписываем туда вот такое содержание и сохраняем файл
echo "Setting Sleep..." >&2
cat <<EOF
if [ "x\${timeout}" != "x-1" ]; then
if keystatus; then
if keystatus --shift; then
set timeout=-1
else
set timeout=0
fi
else
if sleep$verbose --interruptible 3 ; then
set timeout=0
fi
fi
fi
EOF
- Выставляем права и разрешения на редактирование файла, командой
sudo chmod u+x,go-rw /etc/grub.d/05_password
- А последним этапом будет, открытие файла
sudo gedit /etc/default/grub
- Находим и изменяем, если они не совпадают такие параметры
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=2
- Ну и последний раз обновляем редактируемые параметры Grub 2, командой
sudo update-grub
Все, отличная работа!
И как всегда, вот результат