web-dev-qa-db-fra.com

Comment exécuter un script en tant que super utilisateur, vérifiant d'abord l'utilisateur et obtenant le passage de askpass s'il n'est pas super utilisateur

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?

6
pahnin

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.

12
Lekensteyn