Linux
CentOS
RHEL7
centos7
centos7.3

CentOS7 RHEL7 rootパスワード変更(rd.break利用)

More than 1 year has passed since last update.

rootのパスワードを忘れてしまったり、インストール後に正しく設定したパスワードを入力しているはずなのにといったことがあったりします。

そんなときの為にと思い、対処した方法を備忘録としてまとめておきます。

RED HAT ENTERPRISE LINUX7 システム管理者のガイドを参考にしています。

検証した環境は以下となります。

  • Oracle VirtualBox 5.1.22 r115126
  • CentOS Linux release 7.3.1611(Core)
  • Kernel 3.10.0-514.26.2.el7.x86_64

rootパスワード変更手順

1.ブートローダーメニューでカウントダウン中断

システムの起動または再起動をして、ブートローダー画面で任意のキーを押して、カウントダウンを止めます。
例として、「Esc」キーを押します。

image.png

2.「e」キーを押して、現在のエントリを編集

「e」キーを押します。

image.png

3.linux16 で始まる行に移動

「↓」キーを押して、linux16 で始まる行にカーソルを移動します。

image.png

4.「End」キーを押して、カーソルを末尾に移動

「End」キーを押して、カーソルを末尾に移動します。

image.png

5.「rd.break」を行の末尾に追加

半角スペースの後に、「rd.break」を追加します。

image.png

6.「Ctrl+x」を押して、再起動

「Ctrl+x」を押すと、自動で再起動します。

7.switch_rootプロンプト作業

再起動後、switch_rootプロンプトの画面になります。

(1)/sysrootファイルシステムを読み取り/書き込みで再マウント

コマンド
mount -o remount,rw /sysroot

image.png

(2)chroot を使用して /sysroot の chroot jail に移動

コマンド
chroot /sysroot

image.png

8.sh-4.2プロンプト作業

(1)passwdコマンドの実行

passwdコマンドでrootのパスワードを変更します。

コマンド
passwd root

image.png

変更するパスワードを入力します。

image.png

(2)SELinux の再ラベル付け設定

ブート後に自動的に SELinux の完全な再ラベル付けが実行されるように設定を行います。
passwdコマンドで/etc/shadowファイルがSELinuxコンテキストなしで再作成されたために必要となるようです。

コマンド
touch /.autorelabel

image.png

9.exitコマンドを2回

exitコマンドを2回実行します。1回目はchroot jail(sh-4.2プロンプト)を終了、2回目はinitramfsデバッグシェル(switch_rootプロンプト)の終了となります。
しばらくすると、再起動し、ログイン画面になります。

image.png

10.新パスワードでログイン

再設定した新パスワードでログインします。

image.png

ログインできれば成功となります。

image.png

RHEL7について

以下RHEL7の環境でも実施してみた結果、問題なくrootパスワードの変更は行えましたので、ご参考まで。

  • Red Hat Enterprise Linux Server release 7.0 (Maipo)
  • Kernel 3.10.0-123.el7.x86_64

RedHatとしては、こちらの手順は、手順も多く時間もかかるので、インストールディスクを使用したrootパスワードの変更を推奨しているようです。実際やってみたところ10分くらいでしたので、大した時間でもないと思います。

参考サイト