「忘れてしまった root パスワードをリセットする」の版間の差分
ナビゲーションに移動
検索に移動
(デバッグシェルの使用方法を翻訳して追加) |
(序文を更新) |
||
(2人の利用者による、間の9版が非表示) | |||
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| |
+ | {{Warning|攻撃者は、以下に示すいくつかの方法を使用してシステムに侵入する可能性があります。オペレーティングシステムがどれほど安全であっても、またはパスワードがどれほど優れていても、[[ディスク暗号化|保存データの暗号化]] を使用しない限り、物理的にアクセスされてしまえば代替 OS がロードされ、データが漏洩することになります。}} |
− | == sudo |
+ | == sudo を使用する == |
[[sudo]] をインストールし、{{ic|wheel}} グループまたはパスワードを覚えているユーザに権限を設定した場合、{{ic|sudo passwd root}} を実行して root パスワードを変更することができます。 |
[[sudo]] をインストールし、{{ic|wheel}} グループまたはパスワードを覚えているユーザに権限を設定した場合、{{ic|sudo passwd root}} を実行して root パスワードを変更することができます。 |
||
16行目: | 15行目: | ||
== デバッグシェルの使用方法 == |
== デバッグシェルの使用方法 == |
||
− | # {{ic|systemd.debug_shell}} を [[カーネルパラメータ]] に追加し |
+ | # {{ic|systemd.debug_shell}} を [[カーネルパラメータ]] に追加します。 |
− | # これ |
+ | # これにより、通常のブートが行われますが、{{ic|tty9}} でルートシェル ({{ic|/bin/sh}}) を実行する {{ic|debug-shell.service}} が開始されます。{{ic|Ctrl+Alt+F9}} を押してアクセスします。 |
# [[ユーザーとグループ#ユーザー管理|passwd]] コマンドを使用して、root ユーザの新しいパスワードを作成します。 |
# [[ユーザーとグループ#ユーザー管理|passwd]] コマンドを使用して、root ユーザの新しいパスワードを作成します。 |
||
− | # |
+ | # 完了したら {{ic|debug-shell.service}} を [[停止]] します。 |
+ | |||
+ | == bash を init として使用する場合 == |
||
+ | |||
+ | # ブートローダのブートエントリに {{ic|1=init=/bin/bash}} [[カーネルパラメータ]] を追加してください。 |
||
+ | # ルートファイルシステムが読み込み専用でマウントされているので、読み込み/書き込みで 再マウントしてください。{{ic|mount -n -o remount,rw /}} |
||
+ | # [[ユーザーとグループ#ユーザー管理|passwd]] コマンドを使って、root ユーザの新しいパスワードを作成します。 |
||
+ | # {{ic|reboot -f}} と入力して再起動、パスワードを再度紛失しないようにしてください。 |
||
+ | |||
+ | {{Note|この方法では init システムでキーボードが正しく読み込まれないことがあり、bash プロンプトで何も入力できなくなります。この場合、他の方法を使う必要があります}} |
||
== LiveCD を使う == |
== LiveCD を使う == |
||
− | + | [[USB インストールメディア|LiveCD]] では、root を変更して {{ic|passwd}} コマンドを使う方法と、パスワードファイルを直接編集してパスワードフィールドの入力を消去する方法の2つが利用できます。Linux が動作する LiveCD であれば、どのようなものでも使用できますが、root を変更するためには、インストールされているアーキテクチャの種類と一致する必要があります。パスワードファイルを手動で編集するのはかなり危険なので、ここでは chroot でパスワードをリセットする方法のみを説明します。 |
|
− | === Change Root |
+ | === Change Root === |
+ | # LiveCD を起動してメインシステムのルートパーティションを [[マウント]] して下さい。 |
||
− | パスワードを変更するときに手動で chroot を実行してもかまいませんが、かわりに {{Ic|passwd --root}} を使うとchroot とパスワード変更を一括して行えます。 |
||
− | |||
− | # LiveCD を起動してルートパーティションを[[マウント]]して下さい。 |
||
# {{Ic|passwd --root ''mountpoint'' ''username''}} コマンドでパスワードを再設定します。このとき従来のパスワードは尋ねられません。 |
# {{Ic|passwd --root ''mountpoint'' ''username''}} コマンドでパスワードを再設定します。このとき従来のパスワードは尋ねられません。 |
||
# ルートパーティションのマウントを解除してください。 |
# ルートパーティションのマウントを解除してください。 |
||
# 再起動して、先に設定したパスワードを使います。 |
# 再起動して、先に設定したパスワードを使います。 |
||
− | |||
− | === パスワードエントリを消去する方法 === |
||
− | |||
− | 1. LiveCD を起動しルートパーティション('''/''')をマウントしてください: |
||
− | |||
− | mkdir /mnt/arch |
||
− | mount /dev/sda2 /mnt/arch |
||
− | |||
− | 2. 好きなエディタでパスワードを編集します。vim の場合: |
||
− | |||
− | vim /mnt/arch/etc/shadow |
||
− | |||
− | 3. root 行の2番目の項目を削除してください ([[vim]] では項目の最初の文字まで移動し '''d/:/''' とタイプしてから '''Enter''' を押す): |
||
− | |||
− | 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 パスワードをリカバリする方法を記述します。複数の方法があります。
sudo を使用する
sudo をインストールし、wheel
グループまたはパスワードを覚えているユーザに権限を設定した場合、sudo passwd root
を実行して root パスワードを変更することができます。
デバッグシェルの使用方法
systemd.debug_shell
を カーネルパラメータ に追加します。- これにより、通常のブートが行われますが、
tty9
でルートシェル (/bin/sh
) を実行するdebug-shell.service
が開始されます。Ctrl+Alt+F9
を押してアクセスします。 - passwd コマンドを使用して、root ユーザの新しいパスワードを作成します。
- 完了したら
debug-shell.service
を 停止 します。
bash を init として使用する場合
- ブートローダのブートエントリに
init=/bin/bash
カーネルパラメータ を追加してください。 - ルートファイルシステムが読み込み専用でマウントされているので、読み込み/書き込みで 再マウントしてください。
mount -n -o remount,rw /
- passwd コマンドを使って、root ユーザの新しいパスワードを作成します。
reboot -f
と入力して再起動、パスワードを再度紛失しないようにしてください。
LiveCD を使う
LiveCD では、root を変更して passwd
コマンドを使う方法と、パスワードファイルを直接編集してパスワードフィールドの入力を消去する方法の2つが利用できます。Linux が動作する LiveCD であれば、どのようなものでも使用できますが、root を変更するためには、インストールされているアーキテクチャの種類と一致する必要があります。パスワードファイルを手動で編集するのはかなり危険なので、ここでは chroot でパスワードをリセットする方法のみを説明します。
Change Root
- LiveCD を起動してメインシステムのルートパーティションを マウント して下さい。
passwd --root mountpoint username
コマンドでパスワードを再設定します。このとき従来のパスワードは尋ねられません。- ルートパーティションのマウントを解除してください。
- 再起動して、先に設定したパスワードを使います。
参照
- このガイドに例が載っています。
- Early Debug Shell