Linux OS環境にて、絶対実行してはいけないけど、一度でいいからしてみたい。
rm -rf / を実行してみた。
rm -rf とは…
rm とは removeの略で、取り除く、除去、削除といった意味。ここではファイルを削除するコマンドとなる。
-rf とは、rm コマンドのオプションで、 -r が Recursive の頭文字で「再帰的に」を表す。この場合、再帰的にファイル(とディレクトリ)を削除する。
-f は Force の頭文字で、「強制的に」を表す。通常はファイルを消す際に、消していい?と確認されるが、このオプションを付けると有無をいわず削除を行う。
最後の / は削除の対象となるパス。 / はUnixにシステムにおけるルートパス。Windowsでいう C:\ を表すのと同じようなもの。
つまり、このコマンドの指す意味は、 / (ルートパス)以下の全てのファイルとディレクトリを強制的に削除するという恐ろしいコマンド。
通常は、一般ユーザで実行しても、ファイルの所有権限などの制限により、システム的に必要なファイルが消えることがないように設計、設定されているが、今回はUnixシステム上最高特権となる root (Windowsで言うとAdministrator相当)ユーザでこれを実行してみる。
まずはOSのインストールから。
今回は CentOS 5.3 を選んでみました。理由は手元にあって手っ取り早かったからという意外に特にないです。
さくっとインストールしていきます。
どうせ全部消えるのでパッケージも何もいりません。
あとは5分もすればこの通り。おめでとうございます。削除の準備が完了しました。
いったん再起動して…
OSが立ち上がります。
ついにログイン画面が現れました。
さて、ここから root でログインして…
…の前に、スナップショット(復元ポイント)を作成しておきます。
そう、これVM(仮想環境)です。実環境ではやりませんよ。入れなおしたりするの面倒くさいので。
今回はVirtualBoxを使用しました。
これでスナップショットの作成完了。
改めて root でログイン。
次いで遂に rm -rf / 実行の時…!!
Go, Enter!!
押した直後は画面上では特に反応はありません。
ふふふ…全てがどんどん消えていってるんだな。
しばらくするとこんな画面が…
マウントポイントとか/proc の中とか、ファイルシステム的になってるシステムファイルたちは root の権限を持ってしても削除できないので、
エラーになってます。
しばらくすると処理が完了します。消せるものは一通り消したということでしょうか。
Linuxではコマンドも(実行)ファイルです。コマンドは消すことが出来ます。
ls …コマンドが見つからず実行できない。
ps …コマンドが見つからず実行できない。
cd …実行でき…た!
あれ、っと思い、[TAB]キーを押してみる。(bashによる入力補完機能によるもの)
いくつかのコマンドが出てきました。
とりあえず、これらは使えるようです…(でも ls 使えなかったよなぁ)
まぁ、やることは出来たのでシャットダウンしよう…
…
shutdown コマンドも reboot コマンドもなくなってしまいました。
exit コマンドでログアウトしたらなにやらメッセージが出てきました。
そして以後キー入力を受け付けなくなり、なにも反応しなくなりました。
仕方ないのでリセットボタンで強制再起動…!
BIOSをロードし終わった直後、すぐにこの画面が登場しました。
GRUBです。GRUBはGRand Unified Bootloaderの略で、GNUプロジェクトによって開発されたブートローダ、つまりOSの起動を行うプログラム。
これが起動したと言うことは、
ブートローダがOSを起動できない → OSがない(or 壊れた) → OS消えました\(^o^)/
というわけで、 rm -rf / とかやるとすべて消え去ってとんでもないことになります。
なので実運用においては間違っても実行しないように。
よい子はマネしちゃダメだよ☆
2009年8月30日追記
rm -rf / 実行時の動画
2016年3月30日追記
リテイクしYouTubeにアップロードしました。
rm -rf / を実行してみた。
rm -rf とは…
rm とは removeの略で、取り除く、除去、削除といった意味。ここではファイルを削除するコマンドとなる。
-rf とは、rm コマンドのオプションで、 -r が Recursive の頭文字で「再帰的に」を表す。この場合、再帰的にファイル(とディレクトリ)を削除する。
-f は Force の頭文字で、「強制的に」を表す。通常はファイルを消す際に、消していい?と確認されるが、このオプションを付けると有無をいわず削除を行う。
最後の / は削除の対象となるパス。 / はUnixにシステムにおけるルートパス。Windowsでいう C:\ を表すのと同じようなもの。
つまり、このコマンドの指す意味は、 / (ルートパス)以下の全てのファイルとディレクトリを強制的に削除するという恐ろしいコマンド。
通常は、一般ユーザで実行しても、ファイルの所有権限などの制限により、システム的に必要なファイルが消えることがないように設計、設定されているが、今回はUnixシステム上最高特権となる root (Windowsで言うとAdministrator相当)ユーザでこれを実行してみる。
まずはOSのインストールから。
今回は CentOS 5.3 を選んでみました。理由は手元にあって手っ取り早かったからという意外に特にないです。
さくっとインストールしていきます。
どうせ全部消えるのでパッケージも何もいりません。
あとは5分もすればこの通り。おめでとうございます。削除の準備が完了しました。
いったん再起動して…
OSが立ち上がります。
ついにログイン画面が現れました。
さて、ここから root でログインして…
…の前に、スナップショット(復元ポイント)を作成しておきます。
そう、これVM(仮想環境)です。実環境ではやりませんよ。入れなおしたりするの面倒くさいので。
今回はVirtualBoxを使用しました。
これでスナップショットの作成完了。
改めて root でログイン。
次いで遂に rm -rf / 実行の時…!!
Go, Enter!!
押した直後は画面上では特に反応はありません。
ふふふ…全てがどんどん消えていってるんだな。
しばらくするとこんな画面が…
マウントポイントとか/proc の中とか、ファイルシステム的になってるシステムファイルたちは root の権限を持ってしても削除できないので、
エラーになってます。
しばらくすると処理が完了します。消せるものは一通り消したということでしょうか。
Linuxではコマンドも(実行)ファイルです。コマンドは消すことが出来ます。
ls …コマンドが見つからず実行できない。
ps …コマンドが見つからず実行できない。
cd …実行でき…た!
あれ、っと思い、[TAB]キーを押してみる。(bashによる入力補完機能によるもの)
いくつかのコマンドが出てきました。
[root@localhost ~]# : caller echo for local set ulimit ! case elif function logout shift umask ./ cd else getopts ls shopt unalias [ command enable hash mv source unset [[ compgen esac help popd suspend until ]] complete eval history printf test wait { continue exec if pushd then which } cp exit in pwd time while alias declare export jobs read times bg dirs false kill readonly trap bind disown fc l. return true break do fg let rm type builtin done fi ll select typeset
とりあえず、これらは使えるようです…(でも ls 使えなかったよなぁ)
まぁ、やることは出来たのでシャットダウンしよう…
…
shutdown コマンドも reboot コマンドもなくなってしまいました。
exit コマンドでログアウトしたらなにやらメッセージが出てきました。
そして以後キー入力を受け付けなくなり、なにも反応しなくなりました。
仕方ないのでリセットボタンで強制再起動…!
BIOSをロードし終わった直後、すぐにこの画面が登場しました。
GRUBです。GRUBはGRand Unified Bootloaderの略で、GNUプロジェクトによって開発されたブートローダ、つまりOSの起動を行うプログラム。
これが起動したと言うことは、
ブートローダがOSを起動できない → OSがない(or 壊れた) → OS消えました\(^o^)/
というわけで、 rm -rf / とかやるとすべて消え去ってとんでもないことになります。
なので実運用においては間違っても実行しないように。
よい子はマネしちゃダメだよ☆
2009年8月30日追記
2016年3月30日追記
リテイクしYouTubeにアップロードしました。