rootアカウントを消してしまったら

 /etc/passwdなどの編集ミスなどでrootアカウントを削除してしまったらどうすればよいのだろうか? そもそも/etc/passwdなどを編集する際は細心の注意を払うべきなのだが、最近はGUIツールでユーザー管理を行うことも多く、ちょっとしたマウス操作で取り返しのつかないミスを犯してしまう可能性もないとはいえない。

 rootが消えてしまえば、当然ながらsu -もできない。

$ su -
su: user root does not exist

 rootを復活させる方法はいくつか考えられる。簡単なのは、シングルユーザーモードで起動して/etc/passwdや/etc/shadowにエントリを追加する方法である。

 LILOを使っている場合は、マシンを再起動させて「LILO boot:」と表示されたら、

LILO boot: linux single

もしくは、

LILO boot: linux 1

としてシングルユーザーモードで起動する。

 GRUBの場合は、GUIのメニューが表示されたら[A]キーを押す。すると、

grub append> ro root=/dev/hda1

のようなプロンプト(grub append>)とコマンドライン(ro root=/dev/hda1)が表示されるので、最後に「s」を追加する。

grub append> ro root=/dev/hda1 s

 これでシングルユーザーモードで起動する。

 起動したら/etc/passwdをviなどで開き、

root:x:0:0:root:/root:/bin/bash

という行を追加する。

 もし/etc/shadowからもrootが消えているようなら、同じくエディタで開いて、

root::11376:0:99999:7:::

のような行を追加する。ただし、この状態ではパスワードが設定されていないので、すぐにpasswdコマンドでパスワードを設定しよう。