Caja de arena en Mac OS X

No puedo usar el comando sandbox-exec como esperaba.

El problema es que no puedo aplicar un perfil personalizado con el modificador -f: aparece el error "operación no permitida" que no pude encontrar 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 modificador -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

Respuestas (1)

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

Considere 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 consista 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, se denegaron los permisos necesarios para ejecutar el proceso y, por lo tanto, nunca se inició.

Gracias @Testing! Mi alfred-profile.sb era de hecho demasiado restrictivo.