J'ai deux répertoires :src
et projects
. Je voudrais m'empêcher d'exécuter git ...
sauf si je suis spécifiquement à l'intérieur de src
ou projects
. Est-ce possible ?
Réponse acceptée :
Il est difficile d'empêcher l'exécution du binaire, mais pour les situations typiques, une méthode de protection simple existe :
- Vous définissez une fonction shell qui écrase le nom. Cela ne fonctionnera évidemment pas dans un autre shell (également celui d'un autre utilisateur).
- Vous retirez le binaire du $PATH et le remplacez par un script wrapper. C'est plus sûr mais cela causera évidemment des problèmes avec les mises à jour logicielles (le script sera écrasé).
La fonction shell pourrait ressembler à ceci :
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
}