Sandbox unter Mac OS X

Ich kann den Befehl sandbox-exec nicht wie erwartet verwenden.

Das Problem ist, dass ich kein benutzerdefiniertes Profil mit dem Schalter -f anwenden kann: Ich erhalte den Fehler "Operation nicht zulässig", den ich nicht auf etwas Nützliches zurückführen konnte, als ich online nach einer Lösung suchte.

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

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

Es ist jedoch möglich, vordefinierte Profile mit dem Schalter -n auszuführen. Das folgende Beispiel wird erfolgreich ausgeführt (startet Alfred und erlaubt dem Prozess nicht, auf das Netzwerk zuzugreifen).

$ sandbox-exec -n no-network /Applications/Alfred.app/Contents/MacOS/Alfred

Antworten (1)

Was sind die Inhalte von alfred-profile.sb? Ich denke, Sie haben einen Vorgang verweigert/nicht explizit zugelassen, der für den Start der App erforderlich ist. Das würde ich ggf. vorher prüfen.

Betrachten Sie zwei Profile:

  1. Ein permissives Profil, good_profile.sb:

    (version 1)
    (allow default)
    
  2. Ein restriktives Profil, bad_profile.sb:

    (version 1)
    (deny default)
    

Hinweis: Ein Profil, das nur aus besteht, (version 1)zeigt das gleiche Verhalten, da Deny das Standard-Sandbox-Verhalten ist.

Wenn ich jetzt das zulässige Profil auf meinem Computer ausführe, erhalte ich:

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

Aber wenn ich das eingeschränkte Profil ausführe, bekomme ich:

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

In beiden Fällen wurde das Profil geladen, aber im zweiten Fall wurden dem Prozess die zur Ausführung erforderlichen Berechtigungen verweigert und er wurde daher nie gestartet.

Danke @Testing! Meine alfred-profile.sb war in der Tat zu restriktiv.