Сначала предупреждение ...
Процедура защиты паролем grub2 может быть довольно сложной, и если вы ошибаетесь, есть возможность оставить себя в системе без загрузки. Таким образом всегда сначала создайте резервную копию вашего жесткого диска. Моя рекомендация заключалась бы в использовании Clonezilla - другого инструмента резервного копирования, такого как PartImage .
Если вы хотите практиковать это - используйте гость виртуальной машины, который вы можете отменить снимок.
давайте начнем
Приведенная ниже процедура защищает несанкционированное редактирование настроек Grub во время загрузки, то есть нажатие e для редактирования позволяет вам изменять параметры загрузки. Например, вы можете принудительно загрузиться в один пользовательский режим и, таким образом, получить доступ к вашему жесткому диску.
Эта процедура должна использоваться в сочетании с шифрованием на жестком диске и безопасной загрузкой BIOS, чтобы предотвратить загрузку с live cd, как описано в соответствующем ответе на этот вопрос.
почти все ниже может быть скопировано и вставлено по одной строке за раз.
Сначала создадим резервную копию файлов grub, которые мы будем редактировать - откройте сеанс терминала:
sudo mkdir /etc/grub.d_backup
sudo cp /etc/grub.d/* /etc/grub.d_backup
Позволяет создать имя пользователя для grub:
gksudo gedit /etc/grub.d/00_header &
Прокрутите вниз, добавьте новую пустую строку и скопируйте и вставьте следующее:
cat << EOF
set superusers="myusername"
password myusername xxxx
password recovery 1234
EOF
В этом примере были созданы два имени пользователя: myusername и recovery
Далее - вернуться к терминалу (не закрывать gedit
):
Только пользователи Natty и Oneiric
Создайте зашифрованный пароль, набрав
grub-mkpasswd-pbkdf2
Введите пароль, который вы будете использовать дважды, когда будет предложено
Your PBKDF2 is grub.pbkdf2.sha512.10000.D42BA2DB6CF3418C413373CD2D6B9A91AE4C0EB4E6AA20F89DFA027CA6E6CBF3542CB39E951607E9D651D82700AF47884929BDD193E36CB262CC96201B5789AA.1A9B0033928E3D3D0338583A5BF13AF7D5CC6EC5A41456F8FE8D8EBEB7A093CD0A0CE8688949E6007188ECB3FB0FF916F258602D130CF5C8525FB318FBBE2646
Бит, который нас интересует, запускает grub.pbkdf2...
и заканчивается BBE2646
Выделите этот раздел мышью, щелкните правой кнопкой мыши и скопируйте это.
Вернитесь в свое приложение gedit
- выделите текст "xxxx" и замените его на то, что вы скопировали (щелкните правой кнопкой мыши и вставьте)
то есть. строка должна выглядеть как
password myusername grub.pbkdf2.sha512.10000.D42BA2DB6CF3418C413373CD2D6B9A91AE4C0EB4E6AA20F89DFA027CA6E6CBF3542CB39E951607E9D651D82700AF47884929BDD193E36CB262CC96201B5789AA.1A9B0033928E3D3D0338583A5BF13AF7D5CC6EC5A41456F8FE8D8EBEB7A093CD0A0CE8688949E6007188ECB3FB0FF916F258602D130CF5C8525FB318FBBE2646
все 'версии buntu (ясные и выше)
Сохраните и закройте файл.
Наконец, вам необходимо защитить паролем каждую запись меню grub (все файлы, у которых есть строка, начинающаяся с menuentry ):
cd /etc/grub.d
sudo sed -i -e '/^menuentry /s/ {/ --users myusername {/' *
Это добавит новую запись --users myusername
в каждую строку.
Запустите update-grub для регенерации grub
sudo update-grub
Когда вы попытаетесь отредактировать запись grub, она попросит ваше имя пользователя i.e. myusername и пароль, который вы использовали.
Перезагрузите и проверьте, что имя пользователя и пароль применяются при редактировании всех записей grub.
N.B. не забудьте нажать SHIFT во время загрузки, чтобы отобразить ваш grub.
Пароль для восстановления режима восстановления р>
Все вышеперечисленное может быть легко обходным путем с помощью режима восстановления.
К счастью, вы также можете заставить имя пользователя и пароль использовать запись меню режима восстановления. В первой части этого ответа мы создаем дополнительное имя пользователя recovery с паролем 1234 . Чтобы использовать это имя пользователя, нам необходимо отредактировать следующий файл:
gksudo gedit /etc/grub.d/10_linux
измените строку:
printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${version}"
To:
if ${recovery} ; then
printf "menuentry '${title}' --users recovery ${CLASS} {\n" "${os}" "${version}"
else
printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${version}"
fi
При использовании восстановления используйте имя пользователя recovery и пароль 1234
Запустите sudo update-grub
, чтобы восстановить файл grub.
Перезагрузите и проверьте, что вас попросят указать имя пользователя и пароль при попытке загрузки в режим восстановления.
Дополнительная информация - Ссылка