¿Lanzar aplicaciones detrás de la pantalla de bloqueo?

Necesito ejecutar una aplicación detrás de la pantalla de bloqueo, por ejemplo, al igual que Time Machine o el antivirus de Sophos (y otros) pueden ejecutarse cuando la pantalla está bloqueada.

Específicamente, me gustaría programar una aplicación para que se inicie cuando la computadora esté dormida y desatendida (pero no apagada). El plan es programar la activación a través de Energy Saver o pmset, y usar iCal/Automator para programar el inicio de la aplicación. El problema que encuentro es la pantalla de bloqueo (es decir, Preferencias del sistema > Seguridad > Requerir contraseña). Cuando la pantalla de bloqueo está habilitada, la aplicación no se iniciará sin supervisión; el usuario debe ingresar la contraseña. A modo de depuración, confirmé que deshabilitar la pantalla de bloqueo permite que se inicie la aplicación, pero esta no es una solución debido a problemas de seguridad.

En pocas palabras: ¿Hay alguna manera de programar un script AppleScript o Shell (quizás con privilegios de root) para otorgar acceso a la contraseña a la pantalla de bloqueo? Estoy pensando que KeyChain debería poder hacer esto, pero no puedo entender cómo. ¿O tal vez hay otras soluciones?

Otros detalles: - Estoy ejecutando 10.7 y 10.9.

No, si pudieras controlar la PC mientras está bloqueada, sería un poco inútil bloquearla. Podrías crear un Launch Daemon, aunque no sé qué tan seguro será darle acceso a tu contraseña. Sería mejor hacer que Launch Daemon inicie la aplicación, pero estoy bastante seguro de que la aplicación no podrá funcionar completamente a menos que haya iniciado sesión.
--> Volver a bloquear la pantalla siendo inútil. ¡No tan! Hay muchos procesos que se ejecutan detrás de la pantalla de bloqueo. ¡Time Machine es un buen ejemplo! No hay problema para ejecutarse detrás de la pantalla de bloqueo, siempre que un usuario administrador autorice previamente ese proceso para hacerlo. Eso es todo lo que estoy tratando de hacer. El uso de KeyChain permitiría que el proceso indicado se ejecutara de forma segura y excluyera a todos los demás. --> Launch Daemon no ayudaría. La computadora solo está dormida, no apagada.
Procesos como Time-Machine y scripts de mantenimiento fueron especialmente diseñados e integrados en el sistema operativo por Apple, para que puedan ejecutarse. Pero no puede crear un proceso para que comience a ejecutarse mientras está bloqueado, incluso si tiene privilegios de administrador.
Las aplicaciones de terceros pueden hacer esto, por ejemplo, Sophos Antivirus. Lo he visto yo mismo. Lanzará un análisis de virus programado cuando la computadora esté inactiva y bloqueada. Entonces debe haber una manera de trabajar detrás de la pantalla de bloqueo. Solo quiero replicar ese comportamiento. Gracias.

Respuestas (1)

Administrador de energía

Si está feliz de usar una aplicación de terceros, Power Manager puede hacer exactamente lo que desea.

Hay un montón de recetas para ayudar a crear su horario. Para su situación:

De manera predeterminada, Power Manager encenderá una Mac en reposo para realizar eventos programados. La receta anterior para iniciar una aplicación activará automáticamente una Mac dormida. Puede ajustar el evento para encender una Mac apagada, si lo desea.

Power Manager iniciará su aplicación detrás de la pantalla de bloqueo. Esto es posible porque Power Manager tiene un agente auxiliar ejecutándose dentro de cada sesión de usuario. El programador principal trabaja con el agente para asegurarse de que la aplicación se inicie en la sesión de usuario correcta.

Administrador de energía DssW en OS X

Divulgación: trabajo para DssW, que hace Power Manager; así que no dude en hacer preguntas técnicas.

Cambio rápido de usuario

Si le preocupa la seguridad, considere hacer que el usuario vuelva a la ventana de inicio de sesión con Cambio rápido de usuario.

Mientras cambia de usuario rápido, su Mac puede activarse para programar, ejecutar AppleScript y completar su tarea sin arriesgarse a acceder sin protección a la Mac.

Gracias. Como este es un problema único, esperaba una solución menos costosa, incluso si requería más esfuerzo :)
Ningún problema. Es posible lograr lo que desea, pero puede requerir más de lo que AppleScript puede ofrecer.