¿Cómo puedo iniciar un process de daemon como usuario especificado al inicio sin un inicio de session interactivo?

Intento configurar un agente de compilation de TeamCity en un mini server Mac con 10.7.3. Lo he logrado ejecutar y build exitosamente, pero solo si inicio session y lanzo el process manualmente.

Preferimos que el process se inicie al inicio, lo que parece hacerse fácilmente colocando un file plist en la carpeta / Library / LaunchDaemon. Lamentablemente, esto no funciona para nosotros ya que el process se activa como root en lugar de como nuestro usuario especificado. Realmente preferiríamos mantener las cosas restringidas a la carpeta del usuario y, además, necesitamos acceso a un llavero para manejar la mecánica de firma de código de iOS. Desafortunadamente, usar ~ / Library / LaunchAgents no funciona, ya que parece requerir que alguien visite el terminal e inicie session; esto debe comenzar desde el arranque y mantenerse en funcionamiento cuando el usuario cierre la session.

  • ¿Es posible mejorar el time de arranque?
  • Unibody Macbook Stuck en Apple Logo
  • Deje que Docker se inicie automáticamente al inicio
  • No hay método para instalar el sistema OS X a mediados de 2011 imac 27 "
  • Cómo habilitar el proxy ssh cada vez que reinicio el escritorio
  • ¿Por qué mi MacBook a veces hace sonar el timbre de inicio cuatro veces más después de la campanada inicial?
  • ¿Hay alguna manera de iniciar un process como un usuario especificado en el arranque?

  • Deje que Docker se inicie automáticamente al inicio
  • Deshabilitar temporalmente el sonido de inicio
  • ¿Iniciar session desde la Terminal?
  • ¿Cómo creo un acceso de solo lectura para el server wiki?
  • Construyendo un cluster Blender con Xserves
  • opendirectoryd ocupando 1/4 de la CPU y volviendo locos a los fanáticos de MacBook Air
  • 2 Solutions collect form web for “¿Cómo puedo iniciar un process de daemon como usuario especificado al inicio sin un inicio de session interactivo?”

    Usted puede ejecutar fácilmente como otro usuario con sudo -u así:

     #!/bin/sh UZER=jsmith sudo -u "$UZER" /path/to/program/you/want/to/run exit 0 

    Simplemente cambie 'jsmith' al nombre de usuario corto apropiado, y luego guárdelo como un script en alguna parte, y llame desde / Library / LaunchDaemons

    Recuerde que todos los files en / Library / LaunchDaemons deben ser propiedad de la raíz para ejecutar.

    (Creo que esto es lo que bmike estaba sugiriendo)

    Otra opción

    Sin embargo, escribí un CÓMO para hacer que el inicio de session automático sea más seguro:

    Terminally Geeky: utiliza el inicio de session automático de forma más segura

    El resumen ejecutivo es este:

    • Encienda el inicio de session automático
    • Ponga esta list de lanzamiento en ~ / Library / LaunchAgent
    • Reiniciar

    Que hace:

    Tan pronto como inicie session, launchd lo llevará nuevamente a la pantalla de inicio de session usando:

     "/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession" -suspend 

    Tenga en count que es toda una larga línea.

    Considerando que alguien con acceso físico a su computadora tiene muchos exploits potenciales, lo considero relativamente seguro, pero por supuesto, todos tienen que tomar su propia determinación. Corro esto en mi pequeña oficina, pero mi iMac está en mi oficina privada, que puedo cerrar cuando no estoy allí.

    También tenga en count que el inicio de session automático no funciona con FileVault 2 .

    La manera más fácil es configurar a ese usuario para que inicie session automáticamente y luego bloquee la pantalla con el cambio rápido de usuario habilitado. De lo contrario, tendrá que hacer el arduo trabajo de crear un usuario de nivel de administrador y hacer que su secuencia de commands o process se lance a sí mismo con un usuario específico.

    Los processs iniciados antes de que se inicie la session de inicio de session de usuario son funcionalmente root y deben degradarse a sí mismos si no desea que se ejecuten como root. Apple hace esto con el server web y el usuario _www y en el lado del cliente, algunos processs se ejecutan como usuarios nobody, _spotlight y, _mdnsresponder.

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