新・5大Linux破壊の呪文
インフラチームの齊藤です。
今回は趣向を変えて、Linux の危険なコマンドをランキング形式で紹介したいと思います。題して、『新・5大破壊の呪文』
ランキング外もご用意しています。
それでは早速ご紹介しましょう。
第5位:iptables
sudo iptables -I INPUT -j DROP
● 評価ポイント:一瞬で動かなくなる
iptables は普段の扱いからして厄介ですが、このコマンドは打った瞬間から動かなくなります。
ですので、再起動が出来ないサーバーに対して行うと非常に困ります。逆に言えば再起動さえすれば、まだなんとかなります。
第4位:git
git reset --hard HEAD~3 && git push -u --force origin master
● 評価ポイント:同僚にも迷惑がかかる
リモートレポジトリに強制的に上書きを行います。
これを行うことで同僚のプッシュを全て削除することになります。reset しているのでなお具合が悪いです。集団でリモートレポジトリを操作している場合には絶対にやってはいけません。
第3位:chmod
sudo chmod -R 000 /
● 評価ポイント:すべてがゼロになる
かなり危険なコマンドですが、わりと簡単に通ってしまいます。
なんの障害もなくコマンドがパスした後、サーバー内の全てのアクセス権限を失います。こんな状況でも pwd コマンドは正しく表示を返してくれます。
第2位:rsync
mkdir hoge;sudo rsync -av --delete-excluded /hoge/ /
● 評価ポイント:もはや同期ではない
rsync はファイルを同期をするためのコマンドで、rsync にはオプションが多く存在します。数あるオプションのうち必要な物は -a によってかなりの数まとめられています。
ですから、delete と名の付いているオプションを気軽に使わないようにしましょう。
上記のコマンドを使用すると、空のファイルとOSを同期してすべてが消えます。
第1位:rm
sudo rm -rf / --no-preserve-root
● 評価ポイント:やっぱり消せる
最近の OS は rm -rf / という、/ 以下全てを消し去るためのコマンドを打つと、OSから「待った」が掛かりコマンドが動作しません。ありがたいですね。
ですが、そんな親切心を無にするオプションが --no-preserve-root です。これで全てが消え失せます。
ランキング外
rm -rf <folder>
● 評価ポイント:お手軽
sudo を付けると非常に危険なコマンドです。いとも簡単にフォルダやファイルを消せるからです。(実は戻す方法があるのですが、それは又の機会に)
素人が気安く打つことが出来ないコマンドです。状況に応じては使う人もいると思うのでランク外とさせてもらいます。こういった作業は、極力サーバーエンジニアにお任せください。
まとめ
いかがでしたでしょうか。
同業者の方はもしかしたら心拍数が上がったかもしれません。お茶でも飲んでリラックスしてください。
この他にも、fork爆弾:(){ :|:& };:など、危険なコマンドはいくつか存在するので、fork爆弾はDocker上で試したりしないでください。ホストOSに致命的なダメージを与えた前例があります。
今回紹介したコマンドはすべて VirtualBox + Vagrant 上で実施しましたが、ボックスごと消滅したり、Vagrantfile のパーミッションもしくはファイル自体がなくなったりもします。業務用端末では絶対にやらないでください。
以上です。