CentOS/RHEL 7 以降、root パスワードのリセットは、以前のバージョンよりわずかに変更されました。この投稿で、CentOS/RHEL 8 マシンで失われた root パスワードを回復する方法を見てみましょう。
ブート シーケンスの中断
1. システムを再起動し、任意のキーを押してブート ローダー シーケンスを中断します。
2. 起動する必要があるエントリにカーソルを移動します。
3. e を押します 選択したエントリを編集します。カーソルをカーネル コマンド ライン (linux で始まる行) に移動します。 、以下の出力のようになります:
4. rd.break を追加 カーネル コマンド ラインの最後にあるオプション。これは、制御が initramfs から実際のシステムに渡される直前に壊れます。
5.「Ctrl+x」を押します 」をクリックして、システムを再起動します。この時点で、ルート シェルが表示され、実際のシステムのルート ファイル システムが /sysroot に読み取り専用でマウントされます。
root パスワードのリセット
この時点から root パスワードを回復するには、次の手順を使用します。
1. ルート ファイルシステムが「/sysroot」ディレクトリに読み取り専用としてマウントされているかどうかを確認します。
switch_root:/# mount | grep -i sysroot
2. /sysroot を読み書き可能として再マウントします:
switch_root:/# mount -o remount,rw /sysroot
3. /sysroot がファイル システム ツリーのルートとして扱われる chroot 監獄に切り替えます。
switch_root:/# chroot /sysroot sh-4.4#
4. ここで新しい root パスワードを設定します:
# passwd root
複雑でないパスワードについては、ここでの警告を無視してかまいません。
Rebel SELinux
この時点では SELinux はまだ有効になっていないため、作成される新しいファイルには SELinux コンテキストが割り当てられません。一部のツール (passwd など) は、最初に新しいファイルを作成し、それを編集対象のファイルの代わりに移動して、SELinux コンテキストなしで効果的に新しいファイルを作成することに注意してください
1. ラベル付けされていないすべてのファイル (この時点で /etc/shadow を含む) が起動中に再ラベル付けされることを確認してください。
sh-4.2# touch /.autorelabel
2. exit と入力します 二回。 1 つ目は chroot jail を終了し、2 つ目は initramfs デバッグ シェルを終了します。この時点で、システムは起動を続行し、完全な SELinux 再ラベル付けを実行してから、再度再起動します。
CentOS / RHEL 7 :root パスワードをリセットする方法