J'ai un script qui exécute trois fonctions: A && B && C.
La fonction Bdoit être exécutée en tant que super-utilisateur, tandis que Aet Cnon.
J'ai plusieurs solutions mais aucune n'est satisfaisante:
sudo le script entier:
sudo 'A && B && C'Cela semble être une mauvaise idée à exécuter
Aet enCtant que super-utilisateur si ce n'est pas nécessairerendre le script interactif:
A && sudo B && CJe devrai peut-être taper mon mot de passe, mais je veux que mon script ne soit pas interactif, car chaque fonction peut prendre un certain temps, et je ne veux pas que le script m'attende. Eh bien, c'est aussi pourquoi c'est un script en premier lieu, donc je n'ai pas à le regarder fonctionner.
La solution stupide:
sudo : && A && sudo -n B && CD'abord, il semble stupide de
sudocommencer par un no-op en premier, et je dois aussi croiser le doigt que A ne va pas en prendre plus$sudo_timeout.Solution hypothétique (j'aimerais que vous me disiez qu'elle existe):
sudo --store-cred 'A && sudo --use-cred-from-parent-sudo B && C'Cela demanderait mon mot de passe au début, puis n'utiliserait ces informations d'identification qu'en cas de besoin.
Quelle est votre opinion sur tout cela? Je serais très surpris qu'il n'y ait pas de solution à ce problème, car je pense que c'est un problème assez courant (qu'en est-il make all && sudo make install)
Aet . Pas de problèmes de timeout, et pas de privilèges pour A et C. Je ne pense pas que 4 soit possible, semble un "état global" pour un utilisateur.Csu -l some_non_priviliged_usersudo