J'ai un script qui fait un certain nombre de choses différentes, dont la plupart ne nécessitent aucun privilège spécial. Cependant, une section spécifique, que j'ai contenue dans une fonction, a besoin des privilèges root.
Je ne souhaite pas exiger que le script entier s'exécute en tant que root, et je veux pouvoir appeler cette fonction, avec les privilèges root, à partir du script. Demander un mot de passe si nécessaire n'est pas un problème car il est surtout interactif de toute façon. Cependant, lorsque j'essaie d'utiliser sudo functionx
, j'obtiens:
sudo: functionx: command not found
Comme je m'y attendais, cela export
n'a pas fait de différence. J'aimerais pouvoir exécuter la fonction directement dans le script plutôt que de la décomposer et de l'exécuter en tant que script distinct pour un certain nombre de raisons.
Existe-t-il un moyen de rendre ma fonction "visible" pour sudo sans l'extraire, trouver le répertoire approprié, puis l'exécuter en tant que script autonome?
La fonction concerne une page elle-même et contient plusieurs chaînes, certaines entre guillemets doubles et d'autres entre guillemets simples. Il dépend également d'une fonction de menu définie ailleurs dans le script principal.
Je m'attendrais seulement à ce que quelqu'un avec sudo ANY puisse exécuter la fonction, car l'une des choses qu'il fait est de changer les mots de passe.
declare
elles aussi.