BASH : Tester si un script est lancé en root
Table des matières
Dans ce court article, nous allons voir comment tester, dans un script BASH si celui ci est utilisé en tant que root.
Ici, la vérification est fonctionnelle si :
- Le script est lancé en tant que root directement.
- Le script est lancé avec la commande su -lc 'lescript.sh'
- Le script est lancé avec la commande sudo lescript.sh
Nous n'utiliserons pas la variable $EUID
Nous allons utiliser la variable $EUID qui contient le UserID effectif.
La caractéristique de root est que son ID est de 0
A partir de là, il ne reste qu'un simple test à faire, et si cette valeur n'est pas 0, on peut quitter le script avec un code erreur (ici de 1) avec
Introduction
Dans ce court article, nous allons voir comment tester, dans un script BASH si celui ci est utilisé en tant que root.
Ici, la vérification est fonctionnelle si :
- Le script est lancé en tant que root directement.
- Le script est lancé avec la commande su -lc 'lescript.sh'
- Le script est lancé avec la commande sudo lescript.sh
Nous n'utiliserons pas la variable $EUID
Informations
Nous allons utiliser la variable $EUID qui contient le UserID effectif.
La caractéristique de root est que son ID est de 0
A partir de là, il ne reste qu'un simple test à faire, et si cette valeur n'est pas 0, on peut quitter le script avec un code erreur (ici de 1) avec
Code BASH :
exit 1
Le bout de code
Code BASH :
if [[ "$EUID" != "0" ]] then echo "Ce script doit être lancé en tant que root" exit 1 fi