Используя grub-mkpasswd-pbkdf2 – где хранится хеш?

Вопрос или проблема

Я следую этому руководству, чтобы установить пароль для 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 еще раз и сохранить полученный хеш в безопасном месте (например, в текстовом файле, который защищён правами доступа). Не забудьте удалить все временные копии, чтобы предотвратить утечку информации.

Оцените материал
Добавить комментарий

Капча загружается...