Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

26.10.4. root パスワードの変更およびリセット

Red Hat Enterprise Linux 7 インストールでは、root パスワードを設定する必要があります。root パスワードが分からなくなった場合は、パスワードをリセットできます。ユーザーが wheel グループのメンバーである場合は、以下のように root パスワードを変更できます。

~]$ sudo passwd root

GRUB 2 では、Red Hat Enterprise Linux 6 での GRUB のようなシングルユーザモードでパスワードの再設定を行いません。single-user モードおよび emergency モードでの操作には、root パスワードが必要となっています。

root パスワードをリセットする 2 つの手順を以下に示します。

  • インストールディスクを使用した root パスワードのリセット GRUB 2 メニューを編集せずにシェルプロンプトが表示されます。この方法は 2 番目の手順よりも短く、推奨される方法でもあります。ブートディスクまたは通常の Red Hat Enterprise Linux 7 インストールディスクを使用できます。
  • rd.break を使用した root パスワードのリセット では、制御が initramfs から systemd に渡される前に rd.break を使用して起動プロセスを中断します。この方法の欠点は、手順が多いことです。たとえば、GRUB 2 メニューを編集し、SELinux ファイルの再ラベル行いますが、時間がかかる可能性があります。または、SELinux 強制モードを変更し、ブート完了時に /etc/shadow/ の SELinux セキュリティーコンテキストを復元する必要があります。

インストールディスクを使用した root パスワードのリセット

  1. システムを起動し、BIOS 情報が表示されたときに、ブートメニューのオプションを選択して、インストールディスクからのブートを選択します。
  2. Troubleshooting (トラブルシューティング) を選択します。
  3. Rescue a Red Hat Enterprise Linux System (Red Hat Enterprise Linux システムのレスキュー) を選択します。
  4. デフォルトオプションである Continue (選択) を選択します。暗号化されたファイルシステムが見つかった場合は、この時点で、パスフレーズを入力するよう求められます。
  5. シェルプロンプトが表示されるまで OK を押して、表示された情報を承認します。
  6. 以下のようにファイルシステム root を変更します。

    sh-4.2# chroot /mnt/sysimage
  7. passwd コマンドを入力し、コマンドラインに表示される指示にしたがって root パスワードを変更します。
  8. 時間がかかるディスクの SELinux の再ラベルを防ぐために、autorelable ファイルを削除します。

    sh-4.2# rm -f /.autorelabel
  9. exit コマンドを入力して、chroot 環境を終了します。
  10. exit コマンドを再び実行して初期化を再開し、システム起動を完了します。

rd.break を使用した root パスワードのリセット

  1. システムを起動し、GRUB 2 ブート画面で e キーを押して編集を行います。
  2. rhgb パラメーターおよび quiet パラメーターを、最後または末前 (linux16 行、UEFI システムの場合は linuxefi) から削除します。

    Ctrl+aCtrl+e を押して行の最初または最後に移動します。システムによっては、HomeEnd が機能するものもあります。

    重要

    rhgb および quiet パラメーターは、システムメッセージを有効化するために削除する必要があります。

  3. 64 ビット IBM Power シリーズの場合は linux 行、x86-64 BIOS ベースシステムの場合は linux16 行、または UEFI システムの場合は linuxefi 行の最後に以下のパラメーターを追加します。

    rd.break enforcing=0

    enforcing=0 オプションを追加すると、時間がかかる SELinux の再ラベルプロセスを省略できます。

    initramfs は、Linux kernel に制御が渡される前に停止するため、root ファイルシステムで作業を行えます。

    initramfs プロンプトは、Linux 行で指定された最後のコンソールに表示されます。

  4. Ctrl+x を押して変更したパラメーターでシステムを起動します。

    暗号化されたファイルシステムでは、この時点ではパスワードが必要になります。ただし、パスワードプロンプトはロギングメッセージに隠れて表示されないことがあります。Backspace キーを押してプロンプトを表示させることができます。ログメッセージを無視して、キーを放し、暗号化されたファイルシステムのパスワードを入力します。

    initramfs の initramfs switch_root プロンプトが表示されます。

  5. ファイルシステムが /sysroot/ で読み取り専用でマウントされます。ファイルシステムが書き込み可能になっていないと、パスワードの変更はできません。

    ファイルシステムを書き込み可能で再マウントします。

    switch_root:/# mount -o remount,rw /sysroot
  6. 書き込みが有効な状態でファイルシステムが再マウントされます。

    以下のようにファイルシステムの root を変更します。

    switch_root:/# chroot /sysroot

    プロンプトが sh-4.2# に変わります。

  7. passwd コマンドを入力し、コマンドラインに表示される指示にしたがって root パスワードを変更します。

    システムが書き込み可能でないと、passwd ツールは失敗し、以下のエラーメッセージが表示されます。

    Authentication token manipulation error
  8. パスワードファイルを更新すると、SELinux セキュリティーコンテキストが正しくないファイルが作成されます。次回のシステムのブート時にすべてのファイルを再ラベルするには、以下のコマンドを入力します。

    sh-4.2# touch /.autorelabel

    また、手順 3 で enforcing=0 オプションを指定した場合は、大きいディスクを再ラベルするのにかかる時間を節約するために、この手順を省略できます。

  9. ファイルシステムを読み取り専用で再マウントします。

    sh-4.2# mount -o remount,ro /
  10. exit コマンドを入力して、chroot 環境を終了します。
  11. exit コマンドを再び実行して初期化を再開し、システム起動を完了します。

    暗号化されているファイルシステムの場合は、この時点でパスワードまたはパスフレーズが必要です。ただし、パスワードプロンプトはロギングメッセージに隠れて表示されないことがあります。Backspace キーを押して保持すると、プロンプトが表示されます。ログメッセージを無視して、キーを放し、暗号化されたファイルシステムのパスワードを入力します。

    注記

    SELinux の再ラベルプロセスには長時間がかかることがあることに注意してください。このプロセスが完了すると、システムが自動的に再起動されます。

  12. 手順 3 で enforcing=0 オプションを追加し、手順 8 で touch /.autorelabel コマンドを省略した場合は、以下のコマンドを入力して /etc/shadow ファイルの SELinux セキュリティーコンテキストを復元します。

    ~]# restorecon /etc/shadow

    以下のコマンドを実行して、SELinux ポリシーの強制を再び有効にし、ポリシーの強制が有効になっていることを確認します。

    ~]# setenforce 1
    ~]# getenforce
    Enforcing