Launchd - Ejecutar como si estuviera conectado como usuario usando sudo

6

¿Hay alguna manera de hacer esto?

Básicamente, estoy intentando ejecutar un script que necesita iniciar un programa.

Poner el script en /Library/LaunchDaemons funciona bien, pero todo se ejecuta como si fuera el usuario root. Esto no funciona porque necesita ejecutarse como si fuera un usuario real, pero usando el comando sudo .

Así que moví el script a ~/Library/LaunchDaemons pero ahora no ejecutará el programa, probablemente porque se ejecuta como usuario y no con los permisos sudo .

Así que estoy atascado. Iniciar sesión como usuario e ir a una terminal y ejecutar:

sudo my_command_which_launches_a_program

Funciona absolutamente bien, y exactamente cómo debe funcionar. Así que básicamente quiero emular eso, pero en un script Launchd, si es posible.

Gracias

    
pregunta Thomas Clayson 05.06.2013 - 11:43

2 respuestas

4

Usted pone el plist en / Library / LaunchDaemons pero lo edita para decir a qué usuario se ejecutará el script como

La clave que debe agregar es UserName. Por ejemplo ejecuto un servidor de noticias como usuario _news

<key>UserName</key>
<string>_news</string>

Documentado en página de manual de Apple launchd

    
respondido por el Mark 05.06.2013 - 13:05
-2
  

necesita ejecutarse como si fuera un usuario real, pero usando el comando sudo

Creo que esto desmiente la falsa suposición que estás haciendo. Cuando un usuario ejecuta sudo foobar , entonces el comando foobar es ejecutado por el usuario root .

Las únicas cosas que pueden ser diferentes al ejecutar foobar como root (en lugar de que el usuario ejecute sudo foobar ) son las variables de entorno y shell disponibles, como $HOME o $PATH .

Si su aplicación requiere un shell específico o una variable de entorno, solo asegúrese de que ese shell o variable de entorno esté configurado por el LaunchDaemon que está creando . Eso te ahorrará mucho dolor al intentar obtener launchd para replicar la experiencia exacta de un usuario específico que ejecuta sudo foobar .

Para aquellos que están a la baja , esta información se realiza una copia de seguridad varias veces en StackExchange aquí , < a href="https://askubuntu.com/a/592838/19047"> aquí , y here para empezar.

    
respondido por el Cory Klein 29.06.2017 - 17:39

Lea otras preguntas en las etiquetas