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
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:
Ein permissives Profil, good_profile.sb
:
(version 1)
(allow default)
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.
Dex