Linuxでrootパスワードをリセットする2つの方法(GRUB・Live CD)
Linuxでは、一般ユーザーもスーパーユーザーも、パスワード認証によって各種サービスへアクセスできます。一般ユーザーが自分のパスワードを忘れてしまった場合は、スーパーユーザーがターミナルから簡単に再設定できます。しかし、スーパーユーザー(rootユーザー)自身がパスワードを失ってしまったらどうすればよいのでしょうか。その場合、ログイン画面が表示される前にパスワードを復旧する必要があります。なお、この仕組みは、物理的にアクセスできる悪意あるユーザーがLinuxホストの完全な権限を奪えてしまう点にもつながるため注意が必要です。本記事では、Linuxでrootパスワードを紛失した際の復旧方法を、2つの異なる手法で解説します。
注意: rootパスワードのリセット手順は、ほとんどのディストリビューションで共通しています。ここではUbuntuを使用して手順を説明します。また、記事全体を通して「rootパスワード」という表現を使いますが、これはスーパーユーザーのパスワードと読み替えても問題ありません。
1. GRUBメニューからrootパスワードをリセットする
1. まず、rootのパスワードを忘れたことを想定し、Linuxホストを再起動します。
2. GRUB画面が表示されたら、すぐに下矢印キーとEnterキーを使って「*Advanced options for GNU/Linux」を選択します。
3. eキーを押して、起動コマンドを編集モードにします。
ここで、ファイルシステムを「読み取り専用(ro)」から「読み書き可能(rw)」に変更する必要があります。「Linux」で始まる行を探し、その中のroをrwに書き換えます。さらに、行末にinit=/bin/bashを追記してください。
4. F10キーを押すと、シェルのプロンプトが表示された画面に切り替わります。
5. ルートファイルシステムを読み書きモードで再マウントします。
mount -n -o remount,rw /
6. 以下のコマンドを実行すると、失ったrootパスワードをリセットできます。
passwd root
作業が完了したら、次のコマンドを入力します。
exec /sbin/init
これでプロンプトが終了し、コンピューターが自動的に再起動されます。
2. Live CDを使ってrootパスワードをリセットする
LinuxのLive CD/USBをお持ちであれば、それから起動してrootパスワードをリセットすることも可能です。
1. 最新版のUbuntuをダウンロードし、ブータブルなLive CD/USBを作成します。ハードディスクではなく、リムーバブルドライブからシステムを起動してください。
2. 起動画面で「Try Ubuntu」を選択します。これにより、Live CDのデスクトップが表示されます。
3. ターミナルを開き、以下のコマンドを入力してroot権限を取得します。
sudo su
4. 次のコマンドで、復旧対象のハードディスクパーティションを特定します。
fdisk -l
多くの場合は「/dev/sda1」ですが、パーティション構成によっては異なることがあります。
5. 復旧したいシステムのハードディスクパーティションをマウントします。
mkdir /mnt/recover mount /dev/sda1 /mnt/recover
6. この時点で、自分自身を「/mnt/recover」ディレクトリの中に移動させる必要があります。これは、通常のLinuxファイルシステム上で操作しているかのように振る舞うことを意味し、一般的に「chroot」と呼ばれる手法です。
chroot /mnt/recover
7. 次のコマンドで、Linuxのrootパスワードをリセットします。
passwd root
8. 完了したら、chrootシェルから抜けます。
exit
9. マウントしたルートパーティションをアンマウントします。
umount /mnt/recover
続けて、rootセッションからも抜けます。
exit
10. 最後に、Live CDを取り出し、通常どおりLinuxシステムを再起動すれば完了です。
Linuxでのrootパスワード変更は、余分な手順への不安さえ乗り越えれば決して難しくありません。ただし、コンピューターに物理的にアクセスできる人であれば、誰でもこの方法でスーパーユーザーやrootのパスワードをリセットできてしまう点には注意してください。こうした特権へのアクセスをより厳重に管理したい場合は、ハードディスクを暗号化しておくことで、第三者が簡単にシステムを起動したりマウントしたりできないようにできます。
よくある質問
1. ディスク全体の暗号化はrootパスワードの変更に影響しますか?
暗号化は、Linux上でトラブルを修復する際に作業を複雑にすることがありますが、rootパスワードの変更については当てはまりません。ディスクへアクセスできる限り、上記で説明した方法でGRUBから簡単に変更できます。
唯一の違いは、部外者が勝手に同じ手順を実行できなくなるという点です。
2. rootパスワードとスーパーユーザーパスワードの違いは何ですか?
ほとんどの場合、rootユーザーとスーパーユーザーは同一人物であり、rootパスワードを変更すればスーパーユーザーのパスワードも同時に変更されます。Ubuntuでは、ユーザーID(UID)が0のユーザーがスーパーユーザーとして扱われます。もし別のユーザーにUID 0を割り当てている場合は、rootとスーパーユーザーのパスワードが一致しなくなります。
3. パスワードに有効期限を設定することはできますか?
はい、可能です。-xオプションを使えば、特定ユーザーのパスワードの有効期間を日数で指定できます。たとえばpasswd -x 30 rootと入力すると、rootパスワードは30日間のみ有効となり、期限切れ後は必ずパスワードを変更しなければなりません。
さらに、-wオプションを使うと、パスワード変更が必要になる前に事前警告を表示する日数を設定できます。passwd -w 7 rootと入力すれば、-xオプションで設定した期限の1週間前から、rootパスワードの変更を促す警告が表示されるようになります。
Linuxについてさらに知識を深めたい方には、LinuxでBluetoothをセットアップするガイドや、オリジナルのLinuxディストリビューションを作成できるツールのまとめ記事もおすすめです。
-
BIOSパスワードを削除・リセットする5つの方法【2022年版】
パスワードを忘れてしまうのは、誰にとっても身近な悩みです。多くの場合は「パスワードをお忘れですか?」というリンクから簡単な手順を踏めばアクセスを復旧できますが、そうもいかないケースがあります。特にBIOSパスワード(BIOS設定画面への不正アクセスやPCの勝手な起動を防ぐために設定されるパスワード)を忘れてしまうと、システム自体がまったく起動できなくなってしまうのです。 幸い、この問題にもいくつかの回避策が存在します。本記事では、BIOSパスワードを忘れた場合の対処法を5つ詳しく解説し、再びシステムを使えるようにするお手伝いをします。 BIOS(基本入出力システム)とは? BIOS(Basi
-
Windows 7の管理者パスワードを忘れたときのリセット方法【2つの解決策】
「Windows 7でログインしようとしたところ、入力したパスワードが通らず、管理者(Administrator)のパスワードを忘れてしまいました。データを一切消さずにパスワードをリセットする方法はありますか?どなたか助けてください。」 Windows 7にログインするための管理者パスワードを忘れてしまったら、どうすればよいのでしょうか。まず考えられるのは、別の管理者アカウントを持つ人に依頼して、パスワードを復元またはリセットしてもらうことです。しかし、自分が唯一の管理者で、管理者パスワードを思い出せない場合、「忘れたパスワード」を取り戻すのは簡単ではありません。 とはいえ、心配はいりません。