Tengo un script, vamos a llamarlo on-event.sh
, que se ejecutará en momentos específicos, como cuando se inicia o se cierra una aplicación en particular. El script en sí se ejecutará como el usuario actual (no root) ya que estaré utilizando BetterTouchTool para ejecutarlo.
Sin embargo, on-event.sh
necesita de alguna manera activar la ejecución de otro script que debe ejecutarse como root, al que llamaré run-as-root.sh
. run-as-root.sh
ejecutará algunos comandos para cargar o descargar ciertos agentes de lanzamiento de terceros (no propios), por lo que necesita ejecutarse como root. Dado que todo esto ocurrirá en segundo plano, debe suceder sin necesidad de intervención del usuario, por lo que no puede usar sudo
o with administrator privileges
de AppleScript. Debido a las obvias implicaciones de seguridad, solo quiero que sea posible ejecutar run-as-root.sh
como root y no cualquier script o comando de terminal arbitrario.
Una opción de la que ya soy consciente es que podría crear un agente de lanzamiento que abra un socket, espere una conexión y luego ejecute run-as-root.sh
, y hacer que on-event.sh
se conecte a ese socket. Pero esa es una solución más pesada y espero encontrar una manera más fácil de hacer esto.
¿Cómo puedo configurarlo para que sea posible?