「忘れてしまった root パスワードをリセットする」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(英語版と同期、注意喚起などを追加)
(序文を更新)
 
(2人の利用者による、間の11版が非表示)
1行目: 1行目:
 
[[Category:システムリカバリ]]
 
[[Category:システムリカバリ]]
 
[[Category:セキュリティ]]
 
[[Category:セキュリティ]]
  +
[[en:Reset lost root password]]
[[ar:Password Recovery]]
 
  +
[[pt:Reset lost root password]]
[[en:Password Recovery]]
 
  +
[[ru:Reset lost root password]]
[[it:Password Recovery]]
 
  +
[[zh-hans:Reset lost root password]]
[[ru:Password Recovery]]
 
  +
このページでは忘れてしまった [[ユーザーとグループ#概要|root]] パスワードをリカバリする方法を記述します。複数の方法があります。
[[zh-hans:Password Recovery]]
 
このページでは忘れてしまった root パスワードをリカバリする方法を記述します。複数の方法があります。
 
   
{{Warning|悪意のある人が以下にれた方法システムに侵入できかもしれせんOS やパスワがどれほどセキュアであっても、BIOS パスワード[[ディスク暗号化]]の設定をしない限り、物理的にアクセスできると他の OS を起動できたりデータをさらけ出したできます。}}
+
{{Warning|攻撃者は、以下に示すいくつ方法を使用してシステムに侵入可能性がありオペレティングシステムがどれほど安全であっても、またはパスワードがどれほど優れていても、[[ディスク暗号化|保存データの暗号化]] 使用しない限り、物理的にアクセスされてしまえば代替 OS がロードされ、データが漏洩することになります。}}
   
== LiveCD を使 ==
+
== sudo を使用する ==
   
  +
[[sudo]] をインストールし、{{ic|wheel}} グループまたはパスワードを覚えているユーザに権限を設定した場合、{{ic|sudo passwd root}} を実行して root パスワードを変更することができます。
LiveCD を使ってリカバリする方法は2つあります: [[chroot|change root]] と {{Ic|passwd}} コマンドを使う方法、またはパスワードエントリを消去する方法ですが、前者の方法がより安全です。アーキテクチャが一致していれば、どの Linux の LiveCD でも使うことができます。
 
   
=== Change Root と passwd を使方法 ===
+
== デバッグシェルの使方法 ==
   
  +
# {{ic|systemd.debug_shell}} を [[カーネルパラメータ]] に追加します。
パスワードを変更するときに手動で chroot を実行してもかまいませんが、かわりに {{Ic|passwd --root}} を使うとchroot とパスワード変更を一括して行えます。
 
  +
# これにより、通常のブートが行われますが、{{ic|tty9}} でルートシェル ({{ic|/bin/sh}}) を実行する {{ic|debug-shell.service}} が開始されます。{{ic|Ctrl+Alt+F9}} を押してアクセスします。
  +
# [[ユーザーとグループ#ユーザー管理|passwd]] コマンドを使用して、root ユーザの新しいパスワードを作成します。
  +
# 完了したら {{ic|debug-shell.service}} を [[停止]] します。
   
  +
== bash を init として使用する場合 ==
# LiveCD を起動してルートパーティションを[[マウント]]して下さい。
 
# {{Ic|passwd --root ''mountpoint'' ''username''}} コマンドでパスワードを再設定します。このとき従来のパスワードは尋ねられません。
 
# ルートパーティションのマウントを解除してください。
 
# 再起動して、先に設定したパスワードを使います。
 
   
  +
# ブートローダのブートエントリに {{ic|1=init=/bin/bash}} [[カーネルパラメータ]] を追加してください。
=== パスワードエントリを消去する方法 ===
 
  +
# ルートファイルシステムが読み込み専用でマウントされているので、読み込み/書き込みで 再マウントしてください。{{ic|mount -n -o remount,rw /}}
  +
# [[ユーザーとグループ#ユーザー管理|passwd]] コマンドを使って、root ユーザの新しいパスワードを作成します。
  +
# {{ic|reboot -f}} と入力して再起動、パスワードを再度紛失しないようにしてください。
   
  +
{{Note|この方法では init システムでキーボードが正しく読み込まれないことがあり、bash プロンプトで何も入力できなくなります。この場合、他の方法を使う必要があります}}
1. LiveCD を起動しルートパーティション('''/''')をマウントしてください:
 
   
  +
== LiveCD を使う ==
mkdir /mnt/arch
 
mount /dev/sda2 /mnt/arch
 
   
  +
[[USB インストールメディア|LiveCD]] では、root を変更して {{ic|passwd}} コマンドを使う方法と、パスワードファイルを直接編集してパスワードフィールドの入力を消去する方法の2つが利用できます。Linux が動作する LiveCD であれば、どのようなものでも使用できますが、root を変更するためには、インストールされているアーキテクチャの種類と一致する必要があります。パスワードファイルを手動で編集するのはかなり危険なので、ここでは chroot でパスワードをリセットする方法のみを説明します。
2. 好きなエディタでパスワードを編集します。vim の場合:
 
   
  +
=== Change Root ===
vim /mnt/arch/etc/shadow
 
   
  +
# LiveCD を起動してメインシステムのルートパーティションを [[マウント]] して下さい。
3. root 行の2番目の項目を削除してください ([[vim]] では項目の最初の文字まで移動し '''d/:/''' とタイプしてから '''Enter''' を押す):
 
  +
# {{Ic|passwd --root ''mountpoint'' ''username''}} コマンドでパスワードを再設定します。このとき従来のパスワードは尋ねられません。
 
  +
# ルートパーティションのマウントを解除してください。
root:'''$1$9gDquXRP$gbOHLXuqslL.rw81q4pHc1''':14589::::::
 
  +
# 再起動して、先に設定したパスワードを使います。
 
4. ファイルを保存します。 (''':x''' in vim).
 
 
5. 再起動します。root ログインにパスワードは要求されなくなっているはずです。
 
 
== Bash を起動するために GRUB を使う ==
 
 
1. 起動時、[[GRUB]] メニューから適切なブートエントリを選び '''e''' を押します。
 
 
2. kernel 行を選びもう一度 '''e''' を押して編集に入ります。
 
 
3. 行の終末に {{Ic|1=init=/bin/bash}} を追加して下さい。
 
 
4. {{ic|Ctrl-X}} を押して起動します(この変更は一時的なものであり、menu.lst には書き込まれません)。起動後、bash プロンプトが表示されます。
 
 
5. ルートファイルシステムが readonly でマウントされているはずなので、read/write でマウントし直します:
 
 
# mount -n -o remount,rw /
 
 
6. {{Ic|passwd}} コマンドを使って新しい root パスワードを作って下さい。
 
 
7. 再起動します。次からはパスワードを忘れないようにしましょう。
 
 
{{Note|init システムによってキーボードが正しくロードされず、bash プロンプトで何も入力できなくなることがあります。このような場合には、違う方法を使って下さい。}}
 
   
 
== 参照 ==
 
== 参照 ==
   
 
* [https://www.howtoforge.com/how-to-reset-a-forgotten-root-password-with-knoppix-p2 このガイド]に例が載っています。
 
* [https://www.howtoforge.com/how-to-reset-a-forgotten-root-password-with-knoppix-p2 このガイド]に例が載っています。
  +
* [https://freedesktop.org/wiki/Software/systemd/Debugging/ Early Debug Shell]

2024年2月27日 (火) 04:24時点における最新版

このページでは忘れてしまった root パスワードをリカバリする方法を記述します。複数の方法があります。

警告: 攻撃者は、以下に示すいくつかの方法を使用してシステムに侵入する可能性があります。オペレーティングシステムがどれほど安全であっても、またはパスワードがどれほど優れていても、保存データの暗号化 を使用しない限り、物理的にアクセスされてしまえば代替 OS がロードされ、データが漏洩することになります。

sudo を使用する

sudo をインストールし、wheel グループまたはパスワードを覚えているユーザに権限を設定した場合、sudo passwd root を実行して root パスワードを変更することができます。

デバッグシェルの使用方法

  1. systemd.debug_shellカーネルパラメータ に追加します。
  2. これにより、通常のブートが行われますが、tty9 でルートシェル (/bin/sh) を実行する debug-shell.service が開始されます。Ctrl+Alt+F9 を押してアクセスします。
  3. passwd コマンドを使用して、root ユーザの新しいパスワードを作成します。
  4. 完了したら debug-shell.service停止 します。

bash を init として使用する場合

  1. ブートローダのブートエントリに init=/bin/bash カーネルパラメータ を追加してください。
  2. ルートファイルシステムが読み込み専用でマウントされているので、読み込み/書き込みで 再マウントしてください。mount -n -o remount,rw /
  3. passwd コマンドを使って、root ユーザの新しいパスワードを作成します。
  4. reboot -f と入力して再起動、パスワードを再度紛失しないようにしてください。
ノート: この方法では init システムでキーボードが正しく読み込まれないことがあり、bash プロンプトで何も入力できなくなります。この場合、他の方法を使う必要があります

LiveCD を使う

LiveCD では、root を変更して passwd コマンドを使う方法と、パスワードファイルを直接編集してパスワードフィールドの入力を消去する方法の2つが利用できます。Linux が動作する LiveCD であれば、どのようなものでも使用できますが、root を変更するためには、インストールされているアーキテクチャの種類と一致する必要があります。パスワードファイルを手動で編集するのはかなり危険なので、ここでは chroot でパスワードをリセットする方法のみを説明します。

Change Root

  1. LiveCD を起動してメインシステムのルートパーティションを マウント して下さい。
  2. passwd --root mountpoint username コマンドでパスワードを再設定します。このとき従来のパスワードは尋ねられません。
  3. ルートパーティションのマウントを解除してください。
  4. 再起動して、先に設定したパスワードを使います。

参照