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」キーを押します。
2.「e」キーを押して、現在のエントリを編集
「e」キーを押します。
3.linux16 で始まる行に移動
「↓」キーを押して、linux16 で始まる行にカーソルを移動します。
4.「End」キーを押して、カーソルを末尾に移動
「End」キーを押して、カーソルを末尾に移動します。
5.「rd.break」を行の末尾に追加
半角スペースの後に、「rd.break」を追加します。
6.「Ctrl+x」を押して、再起動
「Ctrl+x」を押すと、自動で再起動します。
7.switch_rootプロンプト作業
再起動後、switch_rootプロンプトの画面になります。
(1)/sysrootファイルシステムを読み取り/書き込みで再マウント
mount -o remount,rw /sysroot
(2)chroot を使用して /sysroot の chroot jail に移動
chroot /sysroot
8.sh-4.2プロンプト作業
(1)passwdコマンドの実行
passwdコマンドでrootのパスワードを変更します。
passwd root
変更するパスワードを入力します。
(2)SELinux の再ラベル付け設定
ブート後に自動的に SELinux の完全な再ラベル付けが実行されるように設定を行います。
passwdコマンドで/etc/shadowファイルがSELinuxコンテキストなしで再作成されたために必要となるようです。
touch /.autorelabel
9.exitコマンドを2回
exitコマンドを2回実行します。1回目はchroot jail(sh-4.2プロンプト)を終了、2回目はinitramfsデバッグシェル(switch_rootプロンプト)の終了となります。
しばらくすると、再起動し、ログイン画面になります。
10.新パスワードでログイン
再設定した新パスワードでログインします。
ログインできれば成功となります。
RHEL7について
以下RHEL7の環境でも実施してみた結果、問題なくrootパスワードの変更は行えましたので、ご参考まで。
- Red Hat Enterprise Linux Server release 7.0 (Maipo)
- Kernel 3.10.0-123.el7.x86_64
RedHatとしては、こちらの手順は、手順も多く時間もかかるので、インストールディスクを使用したrootパスワードの変更を推奨しているようです。実際やってみたところ10分くらいでしたので、大した時間でもないと思います。
参考サイト