最近公式をダウンロードしました。centos/7 Vagrant クラウド仮想マシン。キーを使用して再起動中にGRUB2メニューにアクセスしようとしたときに、eユーザー名+パスワードの入力を求められました。
この仮想マシンの公式ページのどこにもこの参照が見つかりません。この投稿を知らせるブログ投稿、次のgitリポジトリにもありません。
おそらく、ある時点でこれを修正してGRUB2ブートメニューを保護するために使用したユーザー名とパスワードを覚えていない可能性があります。
どちらの場合も、この質問を詳しく見ずに、GRUB2の資格情報を自分が好きなように簡単に変更するにはどうすればよいですか?
答え1
Vagrant VM を起動する際には通常、root アクセス権があるため、sudo
次のように単純にログインして root にすることができます.
$ vagrant ssh
$ sudo -Es
ルートアクセス権を取得したら、2つの方法のいずれかで資格情報を必要に応じてリセットできます。
RHELとCentOS 7.2+とFedora
RHEL&CentOS 7.2+&Fedora以降、grub2-setpassword
これを行うプロセスを大幅に簡素化するヘルパースクリプト/ツールが含まれています。
これを使用するには、次のことが必要です。
$ grub2-setpassword
Enter password:
Confirm password:
$
上記の操作が完了すると、このファイルにパスワードが自動的に設定されます/boot/grub2/user.cfg
。 ::
$ cat /boot/grub2/user.cfg
GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.5A95A11398D5DEAA9B205DCEA37E0FDCC069CF6D0C398E8C9FF2ED1D8DE072DDE1D916F955266C306AAC7CA62E0D29A7C6558F3B29E40008289DBE857B8354CE.DD410AA2E5D6495BA723147046B88B89A585656AF4298F07CBC93E7A4F73713A824AE1F3448F837809B6655861A1BA5F0FB615206470E4228E57F7BCF11442A3
このファイルを見つけて、CentOSベースのディストリビューションでGRUB2がどのように使用されているかを確認できます/etc/grub.d
。
$ grep -l user.cfg /etc/grub.d/*
/etc/grub.d/01_users
このファイルの内容:
$ cat /etc/grub.d/01_users
#!/bin/sh -e
cat << EOF
if [ -f \${prefix}/user.cfg ]; then
source \${prefix}/user.cfg
if [ -n "\${GRUB2_PASSWORD}" ]; then
set superusers="root"
export superusers
password_pbkdf2 root \${GRUB2_PASSWORD}
fi
fi
EOF
ああ、デフォルトのユーザーは「root」になります。いいですね。仮想マシンを再起動し、提供した「root」資格情報とパスワードを試してくださいgrub2-setpassword
。
これでメニューに入ることができます。
Ubuntu 16.04+
スクリプトを提供しない他のディストリビューションでは、プロセスはもう少しgrub2-setpassword
複雑ですが、ひどいものではありません。
1. 暗号化されたパスワードの生成
パスワードを暗号化するには、GRUB2ツールを使用する必要があります。
$ grub-mkpasswd-pbkdf2
Enter password:
Reenter password:
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.465B5EE2D2F6A767304EB397D6D97C70BC38653F95AFE58B24F190D5DABB0143920F736C125B91FB9F298AFF3D0F8FBBFB8228D5C8C9DD371ADBB1044CC80BFC.52D87AFD47A5BE2D7B6CF755D26CD5F481557DBCF5E725ABA44BF003A2970D3F775E8657428EDC201D86A3DF07D7A8109AFD5764EA058BE94D840F42ED17C3E2
2. GRUB2構成にパスワードを追加する
次に、そのコマンドの出力をインポートしてgrub.pbkdf2.sha512.10000.....
ファイルにコピーして貼り付けます。
$ cat /etc/grub.d/40_custom
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.465B5EE2D2F6A767304EB397D6D97C70BC38653F95AFE58B24F190D5DABB0143920F736C125B91FB9F298AFF3D0F8FBBFB8228D5C8C9DD371ADBB1044CC80BFC.52D87AFD47A5BE2D7B6CF755D26CD5F481557DBCF5E725ABA44BF003A2970D3F775E8657428EDC201D86A3DF07D7A8109AFD5764EA058BE94D840F42ED17C3E2
メモ:ユーザー名を「root」に設定しました。必要に応じて指定できます。変更する場合は、必ず2行(superusers="root"
&password_pbkdf2 root ...
)を変更してください。
3. GRUB2の再構築grub.cfg
これで、次のものを再生成する必要がありますgrub.cfg
。
$ grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.4.0-130-generic
Found initrd image: /boot/initrd.img-4.4.0-130-generic
done
/etc/grub.d
これにより、すべてが新しいものにマージされますgrub.cfg
。したがって、私たち40_custom
のセクションはgrub.cfg
ここで始まります。
$ cat /boot/grub/grub.cfg
...
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
...
これに関して:
$ cat /boot/grub/grub.cfg
...
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.465B5EE2D2F6A767304EB397D6D97C70BC38653F95AFE58B24F190D5DABB0143920F736C125B91FB9F298AFF3D0F8FBBFB8228D5C8C9DD371ADBB1044CC80BFC.52D87AFD47A5BE2D7B6CF755D26CD5F481557DBCF5E725ABA44BF003A2970D3F775E8657428EDC201D86A3DF07D7A8109AFD5764EA058BE94D840F42ED17C3E2
### END /etc/grub.d/40_custom ###
...