22. Shells restreints

Commandes désactivées en shell restreint

Le fait d'exécuter un script ou une partie de script en mode restreint désactive certaines commandes qui, sans cela, seraient disponibles. Cette mesure de sécurité est prévue pour limiter les droits de l'utilisateur du script et donc minimiser les risques liés à l'exécution du script.

Les commandes et actions ci-dessous sont désactivées :

Exemple 22.1. Exécuter un script en mode restreint

#!/bin/bash

#  Commencer le script avec "#!/bin/bash -r" lance le script entier en mode
#+ restreint.

echo

echo "Changement de répertoire."
cd /usr/local
echo "Maintenant dans `pwd`"
echo "Je retourne à la maison."
cd
echo "Maintenant dans `pwd`"
echo

# Jusqu'ici, tout est en mode normal, non restreint.

set -r
# set --restricted    a le même effet.
echo "==> Maintenant en mode restreint. <=="

echo
echo

echo "Tentative de changement de répertoire en mode restreint."
cd ..
echo "Toujours dans `pwd`"

echo
echo

echo "\$SHELL = $SHELL"
echo "Tentative de changement de shell en mode restreint."
SHELL="/bin/ash"
echo
echo "\$SHELL= $SHELL"

echo
echo

echo "Tentative de redirection de sortie en mode restreint."
ls -l /usr/bin > bin.fichiers
ls -l bin.fichiers    # Essayez de lister le fichier que l'on a tenté de créer.

echo

exit 0