J'ai un bash
script qui doit s'exécuter avec les privilèges root , mais doit être invoqué par l'utilisateur normal.
La partie difficile est que le script ne doit pas demander de mot de passe, et je ne veux pas utiliser le fichier sudoers . Je voudrais éviter d'utiliser sudo ou su .
Est-ce possible?
bash
permissions
Stefan
la source
la source
Réponses:
S'il ne s'agissait pas d'un script bash mais d'une application standard, vous en donneriez la propriété à root et définiriez le bit setuid sur l'application. Ensuite, lors de l'exécution, l'utilisateur effectif sous lequel l'application s'exécute est root. Pour des raisons de sécurité, cependant, cela est interdit dans de nombreux systèmes pour les scripts shell. Cette question ici sur unix.stackexchange.com gère les moyens de surmonter cela.
la source
Utilisez sudo. Si vous ne voulez pas avoir à appeler
sudo /path/to/myscript
, écrivez un wrapper d'une ligneexec sudo /path/to/myscript "$@"
. Voir Autoriser setuid sur les scripts shell , en particulier la réponse de Maciej Piechotka sur l'utilisation de sudo et ma discussion plus générale sur les programmes setuid .la source
sudo
.