Linuxを使っていて、一般ユーザーで操作することが多いと、たまにrootでの作業が必要なときにパスワードを忘れていてログインできないといったトラブルに見舞われることがあります。
そこでここでは、RedHat系LinuxのAlmaLinuxを例に、rootのパスワードを忘れた時の対処方法として、rootのパスワードを再設定する方法を解説します。
目次
sudoコマンドを使って再設定する方法
普段から、通常操作は一般ユーザーで行いroot権限が必要なコマンドを実行するときにsudoコマンドを使っているなら、sudoコマンドで簡単にrootのパスワードを再設定できます。
$ sudo passwd root
Linux起動時に再設定する方法
sudoコマンドを使ったパスワードの再設定ができない場合は、コンソールで以下の手順を実施することで、rootパスワードを再設定できます。
RHEL7~8系OSの場合
対象のマシンを再起動して、カーネルの選択画面が表示されたら、自動起動前のカウントダウン中にいずれかのキーを押して選択画面の状態にして、デフォルトのカーネル行が選択された状態のままで「E」キーを押して編集モードに移行します。
編集モードに移行したら「linux」「linux16」「linuxefi」の何れかで始まる行にある「rhgb」を削除し(「LANG=ja_JP.UTF-8」があれば合わせて削除)、行の末尾に半角スペースを空けて「rw init=/bin/sh」と追記します。
編集が済んだら「Ctrl+X」キーを押して起動すると、rootユーザでログインした状態になるので、passwdコマンドを使ってパスワードを再設定します。
sh-4.2# passwd
SELinuxが有効な環境では、以下のコマンドも実行します。
sh-4.2# touch /.autorelabel
パスワードの再設定が済んだら、以下のコマンドを実行して、通常の起動モードに移行します。
sh-4.2# exec /sbin/init
以上で、通常モードでLinuxが起動し新しいパスワードでログインできるようになっています。
RHEL9系OSの場合
対象のマシンを再起動して、カーネルの選択画面が表示されている間にいずれかのキーを押して選択画面の状態にして、デフォルトのカーネル行が選択された状態のままで「E」キーを押して編集モードに移行します。
編集モードに移行したら「linux」で始まる行の末尾に半角スペースを空けて「rd.break」と追記します。
編集が済んだら「Ctrl+X」キーを押して起動すると、switch_rootプロンプトが表示されるので、ファイルシステムを書き込み可能で再マウントします。
switch_root:/# mount -o remount,rw /sysroot
次に、chroot環境に入ります。
switch_root:/# chroot /sysroot
chroot環境に入ったら、passwdコマンドを使ってパスワードを再設定します。
sh-5.1# passwd
SELinuxが有効な環境では、以下のコマンドも実行します。
sh-5.1# touch /.autorelabel
パスワードの再設定が済んだら、以下のコマンドを順に実行して、通常の起動モードに移行します。
sh-5.1# exit
switch_root:/# exit
以上で、通常モードでLinuxが起動し新しいパスワードでログインできるようになっています。
あとがき
rootのパスワードの入力機会がないと、いざという時にパスワードを忘れてしまって分からないといった状況もあり得ます。そのようなときにお役立てください。