私は2つのディレクトリを持っています:src
およびprojects
。 git ...
を実行できないようにしたい 特にsrc
内にいない限り またはprojects
。これは可能ですか?
承認された回答:
バイナリの実行を防ぐことは困難ですが、一般的な状況では、簡単な保護方法があります。
- 名前を上書きするシェル関数を定義します。これは明らかに別の(また別のユーザーの)シェルでは機能しません。
- $ PATHからバイナリを取り出し、ラッパースクリプトに置き換えます。これはより安全ですが、明らかにソフトウェアの更新で問題が発生します(スクリプトが上書きされます)。
シェル関数は次のようになります:
git () {
local cwd="$(pwd -P)"
if ! [ "/path/to/src" = "$cwd" -o "/path/to/projects" = "$cwd" ]; then
echo "The current working directory is: '${cwd}'"
echo "git must not be run from here; from src and projects only."
echo "Aborting."
else
command git "[email protected]"
fi
}