¿Por qué un script de bash ejecutado directamente no necesita permisos de usuario, pero un archivo .app que ejecuta el script los necesita?

4

Tengo un script de bash myscript que carga algo de applecript para solicitar una interfaz gráfica al usuario, para solicitar su contraseña.

  • Si ejecuto el archivo bash directamente, fuera de un paquete .app, puede hacerlo sin la solicitud del sistema do you want to allow this program to access...[stuff]?

  • Pero si pongo el mismo archivo bash dentro de un paquete .app (con el mismo nombre que el script), y hago doble clic en el archivo .app, primero se mostrará el indicador del sistema para solicitar la autorización del usuario. . No he agregado derechos especiales a la aplicación.

¿Hay un enlace que explique en qué se diferencia una seguridad .app para ejecutar un script en lugar de la línea de comandos?

    
pregunta Johnny Pralo 16.12.2018 - 17:29

1 respuesta

5

En ambos casos, el script está siendo iniciado por una aplicación. En un caso, esa aplicación es Terminal y tiene los permisos necesarios. Tu aplicación no lo hace en este punto.

Este es un cambio en 10.14, descrito en notas de la versión :

  

El envío de eventos Apple desde una aplicación, incluidos los applets de script, ahora requiere la aprobación del usuario. La lista de aplicaciones aprobadas actualmente se puede ver y editar en la categoría Automatización en la pestaña Privacidad en Preferencias del sistema > Seguridad y amp; Intimidad. Si se bloquea un evento porque el usuario no aprobó esa aplicación, el evento fallará con el código de error: -1743 (": No está autorizado para enviar eventos de Apple a"). Se puede marcar previamente un evento utilizando AEDeterminePermissionToAutomateTarget (: : : :).

Mojave ha introducido controles muy estrictos en torno a Apple Events (el núcleo de AppleScript), que tiene una automatización muy complicada. Michael Tsai ha agregado muchas discusiones útiles sobre los problemas.

Ver también: com.apple.iTunes AEDeterminePermissionToAutomateTarget es siempre una devolución 600

    
respondido por el Rob Napier 16.12.2018 - 17:43

Lea otras preguntas en las etiquetas