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