LoginSignup
1
2

More than 5 years have passed since last update.

【やらかした!】/etc/passwd から root を削除してしまったときに復旧する方法

Posted at

はじめに

やってもうた!そこのポンコツのあなた!

僕はこの記事を書く際にコマンドをテストしている時にやってしまいました.

以下のコマンドで追記できます.(-aを忘れると地獄を見ます!!!)
zsh実行してる端末でやらないとエラー出るかも.

% echo "${USER}:x:${UID}:${GID}:${USER}:${HOME}:$(which zsh)" | sudo tee -a /etc/passwd

ふむ.

(-aを忘れると地獄を見ます!!!)
(-aを忘れると地獄を見ます!!!)
(-aを忘れると地獄を見ます!!!)

やってもうた.

なんということでしょう.-aを忘れただけで自分しかログインできないマシンの完成です.(しかも再起動したら二度と起き上がらない)

そもそもこういうことを避けるために/etc/passwdを直接編集することは避けるべきです.が,そうせざるを得ない状況になることもあります.(まあteeでやらかすアホは僕くらいだと信じたいですが.)

でも諦めるのはまだ早いです.なんとしても復旧させます.
その際に僕が行った内容を備忘録としてここに残します.

今回の最大の目標

  • /etc/passwd を元の内容に戻す

ここを目指します.

まず/etc/passwdに書かれたユーザが自分だけなので
- sudo 不可(rootなんて人はいないよって言われる)
- su - 不可(同上)
- ssh 不可
- なんかいろいろ不可
- ていうか再起動したらログインも不可(たぶん)

sudoが不可なのでバックアップがあっても/etc/passwdを編集することができません.
まあ,詰みです.

手順

1. OSのディスクを用意

なんとかして用意しましょう.自分の場合は自分の所属場所に置いてあるのでここは無問題でした.

2. OSのディスクからUbuntuを起動

BIOSの画面からOS起動順位を変えるか,起動オプションを使ってOSのディスクから起動させましょう.
BIOSの画面はPCメーカーによって出現させる方法が違います.(僕はF2でした)

ディスクの読み込みが終わったら
Try Ubuntu without installing でEnterを押します.
OSの再インストールはしません.

3. sudo 権限でファイラーを起動

怖いのでGUIで操作をしていきます.
コマンドだと打ち間違えてバックアップすらさようならする危険がありますので......

端末を開きます.左上のアプリケーションを開くところにterminalと打てば出ます.
以下のコマンドを実行.
sudo nautilus &

これでsudo権限を持ったファイラーが現れます.

4. バックアップを書き戻す

ファイラーからHDD/SSD等がマウントされていることを確認します.
マウントされているなら,そのHDDへアクセスします.
恐らく(HDD/SSDなど)/etc/passwd-(最後にハイフンがある)というファイルが直前のバックアップになっています.
この中身をファイラーなり端末なりからsudo権限を持ったgeditなどを起動して確認しましょう.

書き戻す内容がそれで合っていれば,内容をコピーします.

その後,今度は(HDD/SSDなど)/etc/passwd(今度はハイフン無し!)をgedit等で開きます.
sudo権限を持ったファイラーから現れたgeditはまたsudo権限を持ちます.

さっきコピーした内容を書き戻して保存.
エラーが出なければ大勝利!おめでとうございます.

5. シャットダウンと再起動

シャットダウンしてOSのディスクを抜き,再度起動します.
無事にログインができることを確認したらOSのディスクを元の場所に戻しましょう.

終わりに

やらかした誰かの役に立てば幸いです.
最後に,
そもそもこういうことを避けるために/etc/passwdを直接編集することは避けるべきです.
そもそもこういうことを避けるために/etc/passwdを直接編集することは避けるべきです.
そもそもこういうことを避けるために/etc/passwdを直接編集することは避けるべきです.

大事なことなので3回言いました.おわり.

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2