「rm -rf /」が行われるようなプログラムは極めて危険

注意: この記事は1年以上前に掲載されたものです。情報が古い場合がありますのでお気を付け下さい。

レンタルサーバー業者、「rm -rf /」で誤って全サーバーのデータを削除』(businessnewsline)によれば、某レンタルサーバー業者の従業員が誤ってrm -rf /コマンドを入れてしまって全データが削除されてしまうという事態が発生してしまったということである。

説明として、rm -rf /は、Unix系OSにおいて、「ルートディレクトリーよりマウントされている全てのファイル及びディレクトリーを警告なしかつ再帰的に削除する」という処理である。この処理を行ってしまった場合、(root権限あるいはそれに準ずる権限を持った状態で行った場合)実際に全て全てのファイルが削除されてしまい、再起不能になってしまう ((正確には特殊なファイル及びロックされているファイルなどがあるため完全に削除されるわけではないが、それ以外は警告なしに削除されてしまうため、実質的にほぼ全てのデータが削除されてしまう)) 。

なお、問題の記事によれば、本来、rm -rf {foo}/{bar}をプログラムから自動的に行うということのようであるが、なんらかのバグでfooとbarの両方が空白になってしまってrm -rf /になってしまってしまったということの模様である。

なお、この場合、以下のいずれかのように問題を起こさないようにする必要があったものと考えられる。

  • rootあるいはそれに準ずる権限で行わない
  • 上記のfooあるいはbarが空白あるいはNULLなどになっていないかチェックするようにする
  • 代替のコマンドを使うようにする

上記のいずれかなどを使い分けることによって、事故が発生する可能性は大幅に減らせるのではないのかと考えている。

何れにしても、今回の場合は取り返しのつかない状態になってしまったものと考えられる。

くれぐれも同様の失態を犯さないように対策をとるのが適切だろう。

2016/04/19 追記

上記の件において、質問者はrm -rf /をどれだけの人がちゃんと理解しているのかを目的にジョークとして投稿したとのことである ((cf: サーバ業者が” rm -rf / “で全サーバを誤消去、復旧法をQ&Aサイトに尋ねる。実は書籍執筆のための「引っ掛け問題」 – engadget日本版)) 。

今回のトラブルは嘘だったのだが、このようなトラブルはあるので、失態を犯さないようにちゃんと気をつけるべきだろう。

タイトルとURLをコピーしました