「忘れてしまった root パスワードをリセットする」の版間の差分
ナビゲーションに移動
検索に移動
Kusakata.bot (トーク | 投稿記録) 細 (文字列「[[zh-cn:」を「[[zh-hans:」に置換) |
(序文を更新) |
||
(4人の利用者による、間の13版が非表示) | |||
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 がロードされ、データが漏洩することになります。}} |
||
− | == LiveCD を使う == |
||
+ | == sudo を使用する == |
||
− | LiveCD を使ってリカバリする方法は2つあります: change root と {{Ic|passwd}} コマンドを使う方法、またはパスワードエントリを消去する方法です。アーキテクチャが一致していれば、どの Linux の LiveCD でも使うことができます。 |
||
+ | [[sudo]] をインストールし、{{ic|wheel}} グループまたはパスワードを覚えているユーザに権限を設定した場合、{{ic|sudo passwd root}} を実行して root パスワードを変更することができます。 |
||
− | === Change Root と passwd を使う方法 === |
||
+ | == デバッグシェルの使用方法 == |
||
− | # LiveCD を起動して [[Change Root|change root]] して下さい。 |
||
− | # {{Ic|passwd}} コマンドでルートパスワードを再設定します。 |
||
− | # [[Change Root|change root]] を終了してください。 |
||
− | # 再起動して、先に設定したパスワードを使います。 |
||
+ | # {{ic|systemd.debug_shell}} を [[カーネルパラメータ]] に追加します。 |
||
− | === パスワードエントリを消去する方法 === |
||
+ | # これにより、通常のブートが行われますが、{{ic|tty9}} でルートシェル ({{ic|/bin/sh}}) を実行する {{ic|debug-shell.service}} が開始されます。{{ic|Ctrl+Alt+F9}} を押してアクセスします。 |
||
+ | # [[ユーザーとグループ#ユーザー管理|passwd]] コマンドを使用して、root ユーザの新しいパスワードを作成します。 |
||
+ | # 完了したら {{ic|debug-shell.service}} を [[停止]] します。 |
||
+ | == bash を init として使用する場合 == |
||
− | 1. LiveCD を起動しルートパーティション('''/''')をマウントしてください: |
||
+ | # ブートローダのブートエントリに {{ic|1=init=/bin/bash}} [[カーネルパラメータ]] を追加してください。 |
||
− | mkdir /mnt/arch |
||
+ | # ルートファイルシステムが読み込み専用でマウントされているので、読み込み/書き込みで 再マウントしてください。{{ic|mount -n -o remount,rw /}} |
||
− | mount /dev/sda2 /mnt/arch |
||
+ | # [[ユーザーとグループ#ユーザー管理|passwd]] コマンドを使って、root ユーザの新しいパスワードを作成します。 |
||
+ | # {{ic|reboot -f}} と入力して再起動、パスワードを再度紛失しないようにしてください。 |
||
+ | {{Note|この方法では init システムでキーボードが正しく読み込まれないことがあり、bash プロンプトで何も入力できなくなります。この場合、他の方法を使う必要があります}} |
||
− | 2. 好きなエディタでパスワードを編集します。vim の場合: |
||
+ | == LiveCD を使う == |
||
− | vim /mnt/arch/etc/shadow |
||
+ | [[USB インストールメディア|LiveCD]] では、root を変更して {{ic|passwd}} コマンドを使う方法と、パスワードファイルを直接編集してパスワードフィールドの入力を消去する方法の2つが利用できます。Linux が動作する LiveCD であれば、どのようなものでも使用できますが、root を変更するためには、インストールされているアーキテクチャの種類と一致する必要があります。パスワードファイルを手動で編集するのはかなり危険なので、ここでは chroot でパスワードをリセットする方法のみを説明します。 |
||
− | 3. root 行の2番目の項目を削除してください ([[vim]] では項目の最初の文字まで移動し '''d/:/''' とタイプしてから '''Enter''' を押す): |
||
+ | === Change Root === |
||
− | root:'''$1$9gDquXRP$gbOHLXuqslL.rw81q4pHc1''':14589:::::: |
||
+ | # LiveCD を起動してメインシステムのルートパーティションを [[マウント]] して下さい。 |
||
− | 4. ファイルを保存します。 (''':x''' in vim). |
||
+ | # {{Ic|passwd --root ''mountpoint'' ''username''}} コマンドでパスワードを再設定します。このとき従来のパスワードは尋ねられません。 |
||
− | |||
+ | # ルートパーティションのマウントを解除してください。 |
||
− | 5. 再起動します。root ログインにパスワードは要求されなくなっているはずです。 |
||
+ | # 再起動して、先に設定したパスワードを使います。 |
||
− | |||
− | == Bash を起動するために GRUB を使う == |
||
− | |||
− | 1. 起動時、GRUB メニューから適切なブートエントリを選び '''e''' を押します。 |
||
− | |||
− | 2. kernel 行を選びもう一度 '''e''' を押して編集に入ります。 |
||
− | |||
− | 3. 行の終末に {{Ic|1=init=/bin/bash}} を追加して下さい。 |
||
− | |||
− | 4. '''b''' を押して起動します(この変更は一時的なものであり、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://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