Tengo un script que hace varias cosas diferentes, la mayoría de las cuales no requieren privilegios especiales. Sin embargo, una sección específica, que he contenido dentro de una función, necesita privilegios de root.
No deseo requerir que todo el script se ejecute como root, y quiero poder llamar a esta función, con privilegios de root, desde el script. Solicitar una contraseña si es necesario no es un problema, ya que de todos modos es principalmente interactivo. Sin embargo, cuando trato de usar sudo functionx
, obtengo:
sudo: functionx: command not found
Como esperaba, export
no hizo la diferencia. Me gustaría poder ejecutar la función directamente en el script en lugar de dividirla y ejecutarla como un script separado por varias razones.
¿Hay alguna forma de hacer que mi función sea "visible" para sudo sin extraerla, encontrar el directorio apropiado y luego ejecutarlo como un script independiente?
La función se trata de una página en sí misma y contiene múltiples cadenas, algunas con comillas dobles y otras con comillas simples. También depende de una función de menú definida en otra parte del script principal.
Solo esperaría que alguien con sudo CUALQUIERA pueda ejecutar la función, ya que una de las cosas que hace es cambiar las contraseñas.
declare
también a ellas.