Ho due directory:src
e projects
. Vorrei impedirmi di eseguire git ...
a meno che non sia specificamente all'interno di src
o projects
. È possibile?
Risposta accettata:
È difficile impedire l'esecuzione del binario, ma per le situazioni tipiche esiste un metodo di protezione semplice:
- Definisci una funzione di shell che sovrascrive il nome. Questo ovviamente non funzionerà in un'altra shell (anche di un altro utente).
- Elimini il binario da $PATH e lo sostituisci con uno script wrapper. Questo è più sicuro ma ovviamente causerà problemi con gli aggiornamenti software (lo script viene sovrascritto).
La funzione della shell potrebbe assomigliare a questa:
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
}