同僚の 1 人がエラーにより etc/passwd ファイルと etc/shadow ファイルを削除しました。
問題は、現在システムにアカウントがないことです。SSH で接続したり、作業したりすることはできません。
ルートアカウントを作成するにはどうすればいいですか?
答え1
物理的にアクセスできる場合は、カーネル ラインを rw init=/bin/bash として再起動できます。これにより、ユーザー アカウントを再作成するためのルート アクセスが付与されます。
答え2
答え3
既存のルートシェルを開いていない場合は、BIOS またはブートローダーにアクセスせずにこれを修正できるとは思えません。
その時点では 2 つの選択肢があります。
- ライブCDを起動します。
- init=/bin/sh を使用してインストールされたシステムから起動し、手動でネットワークを起動します。
どちらが簡単かは、具体的な状況によって異なります。
既存のルート シェルが開いている場合は、それを使用できるはずです。
これでファイルを作成する方法ができました。次の問題は、そこに何を入れるかです。Debian には、いくつかのユーザー カテゴリがあります (Debian ポリシー 9.2.2)。
- 特定の Debian リリースに常に存在する固定 ID を持つシステム ユーザー (UID 0-99 および 65534)
- 動的に割り当てられた ID (UID 100-999) を持つシステム ユーザー
- 通常のユーザー (UID 1000-59999、ユーザー数が異常に多いシステムでは 65536-4294967293 も使用される場合があります)
- 固定 ID を持ち、要求に応じてのみ作成されるシステム ユーザー (UID 60000 ~ 64999)。
最初のステップは、最初のカテゴリのユーザーを復元することです。これは、同じリリースの Debian を実行している別のシステムからパスワードとシャドウ エントリをコピーすることで最も簡単に実行できます。
グループ ファイルも破棄した場合、同じ ID 範囲が適用されます。
基本を復元したら、他のユーザーを再作成できます。通常のユーザーの場合、/home を調べると、どのユーザーがどの UID を持っているかの手がかりが得られます。システム ユーザーの場合、それを調べるにはもう少し手間がかかる可能性があります。おそらく、所有者が不明なファイルを検索し、同じソフトウェアがインストールされている別のシステムを調べて、どのユーザーがそれらのファイルを所有しているかを調べる必要があるでしょう。