Mám dva adresáře:src
a projects
. Chtěl bych zabránit spuštění git ...
pokud nejsem konkrétně uvnitř src
nebo projects
. Je to možné?
Přijatá odpověď:
Je obtížné zabránit spuštění binárního souboru, ale pro typické situace existuje jednoduchá metoda ochrany:
- Definujete funkci shellu, která přepíše název. To samozřejmě nebude fungovat v jiném (také jiném uživatelském) prostředí.
- Binární soubor vyjmete z $PATH a nahradíte jej skriptem wrapper. Je to bezpečnější, ale zjevně to způsobí problémy s aktualizacemi softwaru (skript se přepíše).
Funkce shellu může vypadat takto:
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
}