web-dev-qa-db-ja.com

rootとしてrm -rf /を使用してどのくらい遠くまで行けますか

あなたがルートであり、あなたが発行する場合

rm -rf / 

次に、コマンドはどこまで行くことができますか?この種のアクションからデータを回復できますか?バイナリがなくなった後でも、実行中のプロセスはまだアクティブですか?同じ物理マシンを再度起動するには何が必要ですか?これを実現するには、どのファイルを復元する必要がありますか?

これをVM=で試してみることもできますが、これを実行した場合に何が期待できるかについての根拠を知りたいのですが。

23

このコマンドは、少なくともこのセキュリティ機能が最初に実装されたときに使用するOS(Solaris)では何もしません。

# rm -rf /
rm of / is not allowed

その他の* nix、特にLinuxファミリでは、最近の十分なGnu rmが提供されている場合、--no-preserve-rootオプションを追加して、コマンドを完了(または少なくとも開始)できるようにする必要があります。

このコマンドがどこまで進むかは定義されていません。それは、多かれ少なかれ予測できない多くのイベントに依存しています。一般に、プロセスは、バイナリが削除された後でも実行できます。

21
jlliagre

Jlliagreの優れた答えがあっても、これはまだかなり危険なことです。 常にrm -rfなどを実行する前に、現在の場所を再確認してください。たとえば、/ usrディレクトリでrm -rf *を実行すると、破滅的です。

残りの質問については、回復できる内容はバックアップ手順によって異なります。ほとんどの* nixシステムでは、いったん削除されたファイルとディレクトリを回復する簡単な方法はありません。削除が実行された後もファイルがディスクに残っていることが多かった昔のDOSの時代とは異なり、最近のほとんどのシステムは、リカバリを非常に困難にすることをしています。これは、データ復旧サービスが非常に高価である理由の1つです。

VMを使用している場合は、少なくともスナップショットを時々実行することをお勧めします。しかし、優れたバックアップ計画に勝るものはありません。

4
OldTimer

一部の人々が言っ​​たように、あなたはまだSudo rm -rf /*を削除します。アスタリスクがなければ、OS Xでも機能します。誰かがこのようにOS X Yosemiteを破壊することについての映像を作りました、そして私はLinuxベースのOSが同じように経験することを確信しています。

物事はゆっくりと無反応になり始めます。プロセスの発生中にターミナルがフリーズしたため、すべてが削除されたとは思いませんが、全体をフリーズして強制的に再起動するだけで十分でした。

再起動しようとすると、エラーのある起動画面のようなシングルユーザーモードになります。

2
TheBro21

Ubuntu 16とvmwareワークステーションを試してみましたが、no-preserve-rootオプションを使用すると、実行中のLinuxシステムのディスク全体が消去されました。それが完了すると、VMwareワークステーションアプリ全体が不安定になり、アプリケーションから仮想マシンをパワーオフまたはリセットすることさえできなくなりました。 vmxの終了は拒否されましたが、その後はホストの再起動のみが機能しました!

2
Menace

Rootとしてrm -rf /を発行してシステムを破壊することはできません。最初は、コマンドはフェイルセーフモードで発行されます。これにより、/でのrmの使用が制限されますが、--no-preserve-rootを引数として使用しても、実行中のシステムでは、ディスクから実行中のプロセスを削除します。ただし、残りのプログラムとファイルは削除され、(ほとんど)実行するプログラムがないシステムが使用できなくなります!ここで圧縮されたスクリーンショットを確認してください。コマンドは、Arch Linux in Virtual Boxで発行されました: http://bit.ly/q9CsA4

1
Abhisek De