Après chaque suspension, lorsque je réveille mon ordinateur portable, il ne se connecte à aucun réseau et je dois redémarrer NetworkManager. Alors, par paresse, j'ai écrit ceci script qui fonctionne parfaitement comme prévu.
J'ai utilisé un if
pour vérifier que le script est toujours exécuté par l'utilisateur root :
if [ $(id -u) -ne 0 ]
then
echo "ERROR : Root Priveleges Required"
exit NOT_ROOT
else
netrestart
fi
Et j'ai donné à ce script cette permission (étant root lors de l'exécution de cette commande) :
chmod u+x netrestart
Maintenant, lorsque j'exécute ce script en tant qu'utilisateur non root, cela donne ceci
bash: ./netrestart: Permission denied
Ensuite, en exécutant script avec sudo
fonctionne bien
sudo ./netrestart
Je pense que cela rend inutile la vérification de la racine dans le script. J'ai maintenant deux questions :
-
Dois-je supprimer cette partie du code ou continuer à l'utiliser dans le script ?
-
Qu'est-ce qui est mieux et comment ?
- Vérifier si l'utilisateur est root dans le script et donner les permissions d'exécution à tout le monde, c'est-à-dire,
chmod 755 netrestart
- En définissant les permissions nécessaires sur script lui-même et en ne vérifiant pas si l'utilisateur est root à l'intérieur de script, c'est-à-dire,
chmod 711 netrestart
- Vérifier si l'utilisateur est root dans le script et donner les permissions d'exécution à tout le monde, c'est-à-dire,