Sandbox en Mac OS X

1

No puedo usar el comando sandbox-exec como esperaba.

El problema es que no puedo aplicar un perfil personalizado con el modificador -f: obtengo un error de "operación no permitida" que no pude rastrear hasta nada útil cuando busqué una solución en línea.

$ sandbox-exec -f alfred-profile.sb /Applications/Alfred.app/Contents/MacOS/Alfred

sandbox-exec: /Applications/Alfred.app/Contents/MacOS/Alfred: Operation not permitted

Sin embargo, es posible ejecutar perfiles predefinidos con el interruptor -n. El siguiente ejemplo se ejecuta correctamente (inicia Alfred y no permite que el proceso acceda a la red).

$ sandbox-exec -n no-network /Applications/Alfred.app/Contents/MacOS/Alfred
    
pregunta Dex 05.08.2016 - 14:14

1 respuesta

1

¿Cuáles son los contenidos de alfred-profile.sb ? Creo que ha rechazado / no ha permitido explícitamente una operación que se requiere para que la aplicación se inicie. Lo comprobaría primero, si es posible.

Considera dos perfiles:

  1. Un perfil permisivo, good_profile.sb :

    (version 1)
    (allow default)
    
  2. Un perfil restrictivo, bad_profile.sb :

    (version 1)
    (deny default)
    

Nota: un perfil que solo consiste en (version 1) mostrará el mismo comportamiento, ya que denegar es el comportamiento predeterminado de la zona de pruebas.

Ahora, cuando ejecuto el perfil permisivo en mi máquina, obtengo:

sandbox-exec -f good_profile.sb /sbin/ping www.google.com
PING www.google.com (216.58.194.196): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
^C
--- www.google.com ping statistics ---
5 packets transmitted, 0 packets received, 100.0% packet loss

Pero cuando ejecuto el perfil restringido obtengo:

sandbox-exec -f bad_profile.sb /sbin/ping www.google.com
sandbox-exec: /sbin/ping: Operation not permitted

En ambos casos, el perfil se cargó, pero en el segundo caso, al proceso se le negaron los permisos necesarios para ejecutarse y, por lo tanto, nunca se inició.

    
respondido por el Testing 05.08.2016 - 19:14

Lea otras preguntas en las etiquetas