怖いターミナルコマンドを無効にする方法は?
物理サーバにアクセスすることなく、リモートのUbuntuサーバにSSHでアクセスしていました。Ubuntu OS上で動作しているNoSQLサーバーに 'shutdown
' と入力したつもりが、実際にはUbuntuサーバーにシャットダウンを指示してしまいました。その後、サーバー管理者に自分のしたことを伝えて、物理サーバーを立ち上げてもらう必要がありました。これは恥ずかしかったですね。
どうすればこのようなことが起きないようにできるでしょうか?
定番の答えは「rootでログインしてはいけない」です。root で実行されるコマンドはすべて恐ろしいものです。それができない場合は、.bashrc
にいくつかのエイリアスコマンドを入れて、特に怖いと思うコマンドを無効化することができます。例えば
for scary in shutdown halt reboot rm
do
alias $scary="echo If you really want to do that, type: `which $scary`"
done
そして、shutdown と入力すると、次のようなメッセージが表示されます。
If you really want to do that, type: /sbin/shutdown
(本番サーバーでこれを試す前に .bashrc
がロードされていることを確認してください)
現在の ssh
セッションを終了して、再度ログインするか、.bashrc
を使用します。~/.bashrcを使って .bashrc をロード/実行します。サーバーがログイン時に自動的に
.bashrcを読み込むことを無効にしていないか、引数なしで
rm` を実行してみてください。
もし、あなたが halt と shutdown を主に気にしているなら、マシンをシャットダウンする前に ホスト名を入力させる molly-guard をインストールすることを検討してみてください。これは、コマンドラインで定期的に OS 全体をシャットダウンしているが、 正しいものをシャットダウンしていることを確認したい場合に便利です。
logout や exit のような、あまり怖くないコマンドで試すこともできます。
私はとても気に入った答えを受け入れましたが、もし他の人が読んでいて、もっとシンプルな答えが欲しいのであれば、私の答えをここに示します。
.bashrcファイルを見つけて、最後の行に書いてください。
alias shutdown=notforuse
そうすると、shutdown と入力したときに ~bash: notforuse is not a command
のようなものが表示されます。
これは馬鹿馬鹿しいかもしれませんが、シンプルでうまくいきます。しかし、私はこれを行うためのより良い方法についての答えを感謝します!