2つのディレクトリがあります:src
と。特に、または内部にない限りprojects
実行されないようにしたいと思います。可能ですか?git ...
src
projects
ベストアンサー1
バイナリの実行を防ぐことは困難ですが、一般的な場合には簡単な保護方法があります。
- この名前を置き換えるシェル関数を定義します。これは明らかに他の(また他のユーザーの)シェルでは機能しません。
- $ 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 "$@"
fi
}