【実行厳禁】絶対に実行してはいけないLinuxコマンド
はじめに
お疲れ様です。新卒1年目の新米インフラエンジニアです。
私はまだサーバー方面について詳しくありませんが、実習や本番環境などで誤って実行しないよう、ブログにすることで、絶対に実行してはいけないLinuxコマンドを復習しておこうと思いました。
Linuxとは?
参考程度にRedHat社の記事を参照してみます。
Linuxは、1991 年に Linus Torvalds 氏によって作成されたオープンソースのオペレーティングシステム (OS) です。
と書いてあります。
言うまでもありませんが、OSは基本ソフトウェアのことで、PCやスマホを動かすために必要となるソフトウェアのことです。
個人的には、1960年代にAT&Tベル研究所で開発されたOSであるUNIXを真似して参考にして作った無料のOSというイメージです。
多くのLinuxが無料(*)なので、サーバーやスーパーコンピュータなどに使われているイメージがあります。
- Red Hat Enterprise Linux(RHEL)など、一部有料のLinuxディストリビューションもあります。
破壊のコマンド
sudo rm -rf /*
解説
sudo:管理者権限
rm:ディレクトリ(フォルダ)や、ファイルの削除
-r:ディレクトリを中にあるファイルごと削除
f:存在しないファイルを無視する(確認も行わない)
/:ルートディレクトリ(/)以下の
*:全てのディレクトリや、ファイル
要約すると、管理者権限で、ルートディレクトリ以下のディレクトリやファイルを存在しないファイルを無視(確認も行わない)して削除となります。
ちなみに、最近のLinuxではこのコマンドは実行できないようになっているようです。ただ、次のように「--no-preserve-root」と付けると実行できてしまうこともあるようです。
sudo rm -rf / --no-preserve-root
破壊のコマンドその2
sudo touch > /dev/sda
解説
前半部分はtouchである必要はないです。
ただ、/dev/sdaが重要なブロックで、ファイルシステムデータが含まれていて、このコマンドで上書きしてしまうため回復が不可能になります。
破壊のコマンドその3
sudo mv /home/hoge /dev/null
解説
sudo rm -rf /* と一緒です。
最初に指定したディレクトリ、今回では"/home/hoge"を/dev/nullというディレクトリに送る。というものになります。
/dev/nullとは、何もないディレクトリで、ここに送られたディレクトリやファイルは全て消えます。ブラックホールみたいなものと覚えて問題ないと思います。
fork爆弾
:(){ :|:& };:
解説
Fork(フォーク)爆弾とは、コンピュータシステムへのDoS攻撃の一種で、新たなプロセスを生成するfork機能を使ったものです。
ひたすらプロセスをフォークする処理を行うことで、新しいプロセスの生成を困難にさせたりして、システムを正常に利用できない状況にするようです。急激にサーバ負荷が発生し、コンソールでの一切の操作がきかなくなるようです。
知識がないのでコマンドの解説はできません。精進します……
その他
sudo chmod -R 777 /
解説
実行してしまうと、ディレクトリやファイルが消えるといったことはありませんが、一般ユーザーでも全てのディレクトリに対し、読み書き実行ができる状態になってしまうのでシステムが脆弱な状態になります。
学んでみての感想、まとめ
あの有名なコマンド、sudo rm -rf /*
が使えなくなっているというのは知っていたのですが、--no-preserve-root をつけると実行できる場合があると知って驚きました。
他に利用する場面がわからないので何とも言えませんが、このオプション必要なんですかね?
とはいえ、メジャーなディストリビューションではこれもできないように対策されているようです。
意外とコマンドの中で意味が分からないオプションなどもあったので参考にしたサイトは最後にまとめておきました。
他はともかくとして、破壊のコマンドその2については/dev/sdaに書き込むとNGというもので、実務でも誤実行する事があるかもしれないので気を付けようと思います。
本番環境のシステムを壊さないようにしよう!
Discussion