web-dev-qa-db-ja.com

GRUB2のユーザー名とパスワードをどのように変更しますか?

最近、公式の centos/7 Vagrant Cloud VM をダウンロードしました。再起動中にGRUB2メニューにアクセスしようとすると、 e キー、私はユーザー名とパスワードの入力を求められました。

ss1

私はこれがこのVMの公式ページの それを発表しているブログ投稿 、またはこれらのgitリポジトリのいずれかで参照されている箇所を見つけることに失敗しました:

おそらく私はある時点でこれを変更し、GRUB2のブートメニューを保護するために使用されたユーザー名とパスワードを思い出せなくなりました。

どちらの場合も、これ以上探すのではなく、GRUB2の資格情報を必要なものに変更するにはどうすればよいですか?

3
slm

通常、Vagrant VMを起動するとSudoを介してrootにアクセスできるため、単にログインして次のようにrootになることができます。

$ vagrant ssh
$ Sudo -Es

Rootになったら、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

次のように/etc/grub.dで検索することにより、CentOSベースのディストリビューションでGRUB2がこのファイルをどのように使用するかを確認できます。

$ 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」になります。 VM=を再起動し、grub2-setpasswordに提供したパスワードを使用して資格情報 'root'を使用してみます。

ss2

これでメニューに入ります:

ss3

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」に設定します。ユーザーの名前は何でもかまいません。変更する場合は、必ず両方の行で変更してください(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_customgrub.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 ###
...

参考文献

3
slm