RHEL / CentOS 7でパスワードをリセットするときにchrootコマンドを使用する方法は?

RHEL / CentOS 7でパスワードをリセットするときにchrootコマンドを使用する方法は?

CentOS / RHEL 7では、パスワードリセットプロセスがどのように機能するかを正確に理解しようとしていますが、いくつかの基本事項がありません。

存在する一部 その他 はい私はこれがchroot /sysroot必要だと思いますが、このステップが正確になぜか何をするのか理解していません。表現例:

  • (ソースA)「5 - このコマンドを使用してシステムにアクセスしてください」
  • (ソースB)「ブーム。シングルユーザーモードです。シェルプロンプト! - 次のようになります:/#
    type chroot / sysroot」
  • (ソースC)「その後、chrootを使用してchroot刑務所に入ります。」

確かに、これらのプロセスの説明は少し不足しています。 :-(誰かを詳しく説明してもらえますか?

答え1

失われたプログラムをリセットすることについて話しています。パスワード。これは、ルートパスワードを紛失した場合にのみ必要です。そしてsudoルートアクセスなどのアクセス権がありません。

起動時に、ブートローダ(通常はGRUB)はカーネルとinitramfs(initrdとも呼ばれる)ファイルという2つのファイルをロードします。 initramfsファイルには、物理​​ルートファイルシステム、対応するディスクコントローラ、およびそれを有効にするために必要なその他の機能(LVM、ディスク暗号化、マルチパス、および/またはソフトウェアRAID)を有効にするために必要なツールとカーネルモジュールを含む最小ファイルシステムが含まれています。 )。

起動rd.breakオプションは、システムがまだinitramfsを使用しているが、実際のルートファイルシステムがすでにマウントされている間に起動順序を停止するように指示します/sysroot。通常、次のステップは ivot_root 操作を実行し、/sysroot実際のルートファイルシステムに切り替えてそこからコンテンツを実行することです。を押し、メモリからinitramfsを削除します。

initramfsで停止すると、緊急シェルにアクセスできます。ただし、initramfsで使用できるコマンドの数は非常に制限されており、/etc/passwdinitramfs全体がとにかく実際のルートファイルシステムに置き換えられるため、initramfsファイルを編集しても効果はありません。

ルートファイルシステムは、最初にファイルシステムチェックを可能にするために読み取り専用モードでマウントされます。最初のステップは、パスワードの変更を許可するために読み取り/書き込みモードで再インストールすることです。

このコマンドは、次のことを意味しますchroot /sysroot。対応するchrootシェルは、実際のルートファイルシステムの実際のパスワードファイルを参照し、システムが正常に実行されたときに使用されるものと同じです。コマンドは同じです。このchrootedシェルは緊急シェルで起動されているため、すでにフルrootアクセス権を持っており、このコマンドを使用すると、新しいルートパスワードの設定を含め、以前のパスワードを最初に尋ねることなく、誰でも新しいパスワードを設定できます。/sysroot//etc/passwd/etc/shadow/bin/passwdpasswd

プロセスが完了すると、最初のexitコマンドはchrootedシェルを終了し、実際のルートファイルシステムを処理する初期緊急シェルに戻ります/sysroot。 2番目のexitコマンドは、緊急シェルが使用されるたびに起動スクリプトに制御を返します。通常は再起動されます。

これは必要な説明ですか?

答え2

シングルユーザーモードでは、ファイルシステムは/sysroot読み取り専用(デフォルト)または読み取り/書き込みモードrorw init=/sysroot/bin/sh

これで、ルートパスワードをリセットする前に、使用するルートファイルシステムを変更する必要があります/sysrootchroot /sysroot

これはこれについての公式RedHATドキュメントです。

関連情報