Commandes désactivées en shell restreint
Exécuter un script ou une partie de script en mode restreint désactive certaines commandes qui sinon seraient utilisables. C'est une mesure de sécurité ayant pour objectif de limiter les privilèges de l'utilisateur du script et de minimiser les risques liés à l'exécution de ce script.
Utiliser cd pour changer de répertoire courant.
Changer la valeur des variables d'environnement suivantes : $PATH, $SHELL, $BASH_ENV, $ENV.
Lire ou remplacer les options d'environnement de shell $SHELLOPTS.
Redirection de sortie.
Faire appel à des commandes contenant un ou plus de /.
Faire appel à exec pour substituer un processus différent à celui du shell.
Divers autres commandes qui pourraient permettre de détourner le script de son objectif initial.
Sortir du mode restreint à l'intérieur d'un script.
Exemple 21-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 # Tout jusqu'ici 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.files ls -l bin.files # Essayez de lister le fichier que l'on a tenté de créer. echo exit 0 |
Précédent | Sommaire | Suivant |
Sous-shells | Niveau supérieur | Substitution de processus |