Вопрос или проблема
Я следую этому руководству, чтобы установить пароль для GRUB 2. Я запустил grub-mkpasswd-pbkdf2
, ввел пароль, и хеш отображался на экране. Затем я запустил vim
.
Ой.
Vim занял весь терминал, и мой хеш больше не отображался на экране. Я не могу прокрутить вверх, чтобы его увидеть. Он потерян. Я не против снова запустить grub-mkpasswd-pbkdf2
, но я хочу быть уверенным: сохраняется ли где-нибудь хеш, который я создал ранее? В файле или записан ли он куда-то, кроме стандартного вывода? Есть ли способ его извлечь без повторного запуска grub-mkpasswd-pbkdf2
с теми же данными? Я хочу убедиться, что удалил все копии, кроме того места, где он должен быть, потому что не хочу, чтобы он утек.
Документация Ubuntu говорит: “[grub-mkpasswd-pbkdf2] преобразует ваш желаемый пароль в очень длинный алфавитно-цифровой код, который помещается в файлы GRUB 2.” Где именно в файлах GRUB 2? Я собираюсь искать.
Спасибо!
grub-mkpasswd-pbkdf2
просто выводит хеш пароля на стандартный вывод (т.е. в ваш терминал, если вы не перенаправляете вывод вручную). Если вы находились на консоли Linux (например, tty2), то вы не можете прокрутить назад (по крайней мере, в последних ядрах), поэтому ваш хеш будет потерян. Если вы были в “нормальном” терминальном приложении, вы можете просто прокрутить назад, чтобы найти свой хеш.
Когда вы запускаете grub-mkpasswd-pbkdf2
, вам затем нужно вручную вставить его в конфигурационные файлы. Вы можете, например, создать скрипт с именем 01_password
в /etc/grub.d
со следующим содержимым:
#!/bin/sh
set -e
echo 'set superusers="root"'
echo 'password_pbkdf2 root grub.pbkdf2.sha512.10000.XXXXXXXXXXXXXXXXXXXXXX......'
echo 'export superusers'
Это потребует входа с именем пользователя root
и указанным хешированным паролем для большинства операций, включая загрузку ОС. Если вы хотите, чтобы запись была свободно доступна, вам нужно будет создать свои версии других скриптов в той же директории (например, 10_linux
), чтобы обозначить записи, которые вы хотите, с помощью --unrestricted
.
Ответ или решение
При использовании команды grub-mkpasswd-pbkdf2
, хеш пароля выводится только в стандартный поток вывода (stdout), то есть вы видите его в терминале. Если вы использовали Linux консоль (например, tty), вы не сможете прокрутить назад, и это означает, что ваш хеш был утерян. Если вы находитесь в обычном терминальном приложении, вы можете просто прокрутить вверх, чтобы найти ваш хеш.
Команда grub-mkpasswd-pbkdf2
не сохраняет хеш пароля в файлы автоматически. Вам нужно вручную вставить его в конфигурационные файлы GRUB. Обычно это делается путем создания сценария в каталоге /etc/grub.d
. Вы можете создать файл, например 01_password
, и добавить в него содержимое следующего вида:
#!/bin/sh
set -e
echo 'set superusers="root"'
echo 'password_pbkdf2 root grub.pbkdf2.sha512.10000.XXXXXXXXXXXXXXXXXXXXXX......'
echo 'export superusers'
Таким образом, при запуске GRUB будет требоваться ввести имя пользователя (в данном случае, root
) и указанный хешированный пароль для выполнения большинства операций, включая загрузку операционной системы. Если вы хотите, чтобы некоторые записи были доступны без пароля, вам нужно будет изменить соответствующие скрипты в каталоге /etc/grub.d
, добавив флаг --unrestricted
.
К сожалению, если хеш был потерян в stdout и вы не перенаправили его в файл, вы не сможете его восстановить. Если вы хотите обеспечить безопасность, рекомендуется запустить grub-mkpasswd-pbkdf2
еще раз и сохранить полученный хеш в безопасном месте (например, в текстовом файле, который защищён правами доступа). Не забудьте удалить все временные копии, чтобы предотвратить утечку информации.