Launchd – Ejecutar como si estuviera conectado como usuario usando sudo

¿Hay alguna forma de hacer esto?

Básicamente estoy tratando de ejecutar un script que necesita para iniciar un progtwig.

  • Los menus de elementos recientes han dejado de funcionar en mi iMac
  • ¿Puedo acortar la escritura necesaria para `cd` en algunos directorys bien conocidos
  • Cómo quitar Office individual 2016 para aplicaciones de OS X
  • Mavericks de OS X: InstallESD.dmg y BaseSystem.dmg
  • Mac se despierta sin ninguna razón durante la noche (El Capitán)
  • ¿Cómo escribir en el carácter tilde '~' con un keyboard internacional de apple?
  • 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 utilizando el command sudo .

    Así que moví el script a ~/Library/LaunchDaemons pero ahora no lanzará el progtwig, presumiblemente porque se está ejecutando como el usuario y no con permissions de sudo .

    Así que estoy atascado. Iniciar session como usuario y acceder a un terminal y ejecutarlo:

     sudo my_command_which_launches_a_program 

    Funciona absolutamente bien, y exactamente cómo su significado para trabajar. Así que quiero básicamente emular eso, pero en un script de Launchd, si es posible.

    Gracias

  • Teclado Microsoft Sculpt en OS X
  • ¿Qué command de terminal o progtwig puede enumerar las horas de encendido de un SSD?
  • ¿Cómo puedo rotar un video?
  • ¿Es probable que el reformateo de mi Mac y la restauración de la última copy de security de Time Machine mejoren su estabilidad?
  • ¿Puedo abrir un file de text en Vista previa desde el terminal?
  • Error "No se pudo crear file temporal." Al borrar espacio libre en disco externo
  • 2 Solutions collect form web for “Launchd – Ejecutar como si estuviera conectado como usuario usando sudo”

    Usted pone el plist en / Library / LaunchDaemons pero edítelo para decir qué usuario el script se ejecutará como

    La key que necesita agregar es UserName. Por ejemplo, ejecuto un newserver como usuario _news

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

    Documentado en la página de manual de Apple

    necesita funcionar como si fuera un usuario real, pero usando el command sudo

    Creo que esto desmiente una suposition falsa que usted está haciendo. Cuando un usuario ejecuta sudo foobar , el command foobar es ejecutado por el usuario root .

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

    Si su aplicación requiere una variable de entorno o de shell específica, asegúrese de que la variable de entorno o de shell esté establecida por el LaunchDaemon que está creando . Eso le ahorrará mucho dolor en tratar de conseguir launchd para replicar la experiencia exacta de un usuario específico que ejecuta sudo foobar .

    Para aquellos downvoting , esta información se copy de security varias veces en StackExchange aquí , aquí , y aquí para empezar.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).