thers une question similaire là-bas Comment puis-je déterminer si un script Shell s'exécute en tant que root ou non?
J'ai le même doute avec un résultat différent
Est-il possible, dans le script BASH avant que tout ne soit exécuté, de vérifier si le script est exécuté en tant que superutilisateur, et si non, d'imprimer un message indiquant que vous devez être superutilisateur pour utiliser ce script, puis ultérieurement
se passer de l'utilisateur en utilisant askpass ou quelque chose comme ça, puis exécuter le même script en tant que superutilisateur?
J'appelle simplement Sudo si le programme a besoin d'autorisations root, mais n'a pas:
#!/bin/bash
if [ $(id -u) != 0 ]; then
echo "This script requires root permissions"
Sudo "$0" "$@"
exit
fi
"$0"
contient le nom du script, "$@"
arguments facultatifs. Il peut être omis si votre programme n'accepte pas les arguments.
Remarque: ce script de shell doit être exécuté dans un shell. Si ce script doit être exécuté en tant qu'interface graphique, utilisez quelque chose comme gksu
ou kdesudo
au lieu de Sudo
.