実行するのが怖いコマンドは多数存在します。例えば sudo rm -Rf / なんてコマンドは間違っても実行してはいけないコマンドでしょう。また、実行する可能性があっても処理前に確認したいコマンドもあります(負荷が高いものなど)。 そうしたミスを未然に防げるのがExeCopです。あらかじめ入れておくとサーバの作業が捗るでしょう。

ExeCopの使い方

設定ファイルを書きます。例えば以下のような感じです。

deny when command_match destroy
confirm when command_match rm
confirm when env_eq AWS_PROFILE=production

これでマッチするコマンドを実行しようとすると確認が入るようになります。ディレクトリ毎に設定ファイルを設置できます。環境変数によって動作変更もできるので、開発環境と本番環境で動作を指定を変えることもできます。

$ rm test
[ExeCop] Do you really want to execute 'rm test'? [yes/no] no
[ExeCop] Canceled 'rm test'.

確認が出たらnoでコマンドのキャンセルができます。他にもそもそも実行をキャンセルすることもできます。サーバを安全に運用するために設定しておくと役立つでしょう。

ExeCopはBashスクリプト製のオープンソース・ソフトウェア(MIT License)です。

k1LoW/execop: ExeCop is a checker that check commands and environment variables before execute command.