Заметки и различная информация
Правильный способ установки пароля на GRUB 2
Дошли руки до установки пароля на GRUB. Посмотрев в интернетах, не нашёл нормального готового решения. Меня не устроило следующее:
- Необходимость править пароль в скрипте.
- Доступность хэша пароля каждому пользователю.
!/bin/sh
# grub-mkconfig helper script.
# Copyleft(CL)2012 by Artiom N.
# Setting password in grub loader.
set -e
PASSWORD_FILE=/etc/default/grub_password
ARIGHTS="600"
# Include the GRUB helper library for grub-mkconfig.
. /usr/lib/grub/grub-mkconfig_lib
# I want to work in /boot/grub/ only.
test -d "${GRUB_PREFIX}"; cd "${GRUB_PREFIX}"
[ ! -r "$PASSWORD_FILE" ] && { echo "$0: Error! Can't find password file ($PASSWORD_FILE)!" >&2; return 1; }
if [ $(stat -c%a "$PASSWORD_FILE") -ne "$ARIGHTS" ]; then
echo "$0: Warning! Access rigths to $PASSWORD_FILE not equal to $ARIGHTS! Will be changed to $ARIGHTS." >&2
chmod $ARIGHTS "$PASSWORD_FILE" || return 2;
fi
. "$PASSWORD_FILE"
USER_NAME=${USER_NAME:-root}
[ -z "$PBKDF2_HASH" ] && { echo "$0: Error! Password hash is empty." >&2; return 3; }
echo "$PBKDF2_HASH"|egrep -q "^grub\.pbkdf2\.[^.]*\.[0-9]*\.[0-9A-F]*\.[0-9A-F]*$" || echo "$0: Warning! Pasword hash not in PBKDF2 format!" >&2
cat << EOF
set superusers="$USER_NAME"
password_pbkdf2 root $PBKDF2_HASH
EOF
05_ в названии нужен, чтобы он запускался перед скриптами, которые добавляют пункты меню.В /etc/default/grub_password:
Grub2 password file.
PBKDF2_HASH="grub.pbkdf2.sha512.10000.[ХЭШ ПАРОЛЯ]
USER_NAME=root
Пароль создаётся утилитой grub-mkpasswd-pbkdf2. Хэш, который она выдаёт (начинается с grub.pbkdf2),
присваивается переменной PBKDF2_HASH в файле /etc/default/grub_password.
Сбт Июл 21 10:16:39 MSK 2012