Erste Schritte mit Sandbox

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Erste Schritte mit Sandbox

    Hi :)

    Ich lese schon eine ganze Weile mit im Forum. Heute habe ich mich endlich angemeldet. Der Grund ist - na klar - dass ich ein Problem habe, mit dem ich einfach nicht weiterkomme. Ich bin Schüler und beschäftige mich noch nicht so lange mit diesen Sachen. Aber ich finde es unglaublich spannend und hoffe, dass ihr mir helfen könnt.

    Also zu meinem Problem. Ich möchte eine App auf Mojave in einer Sandbox ausführen. Dazu habe ich die folgenden Zeilen geschrieben. Aber im Terminal bekomme ich immer eine Fehlermeldung. Und ich sehe nicht, was ich falsch mache.

    sandbox-exec -p "(version 1) (deny default) (allow file read* file-write* (regex "Users/heiko/Documents")) (regex "^/Applications/TorBrowser.app") (regex "^/private/tmp/") (regex "^/private/var/tmp/")) (allow process-exec (regex "^/Applications/TorBrowser.app")) /Applications/TorBrowser.app/Contents/MacOS/TorBrowser

    Die Fehlermeldung lautet: -bash: syntax error near unexpected token `('

    Wo ist der Fehler? Ist das alles Unsinn? Oder ist es nur ein Fehler in der Syntax? Ich sitze hier schon so lange und komme einfach nicht weiter. ?( ;( X(

    Liebe Grüße!

    PS: Tor habe ich hier nur als Beispiel eingetragen. Es geht mir nicht um eine bestimmte App sondern ums Prinzip. Ich will einfach herausfinden, wie das geht.
  • Mac & i Test Abo
  • Ohne je etwas derartiges probiert zu haben :) ... Du schliesst nie die Anführungszeichen, die Du zu Beginn des Policy-Parameters startest. Außerdem könnte ich mir vorstellen, dass Du innerhalb dieses Strings andere Hochkommata verwenden musst. Vielleicht wäre die Benutzung einer sb-Datei mit den Policies einfacher?

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • MyMattes schrieb:

    Du schliesst nie die Anführungszeichen, die Du zu Beginn des Policy-Parameters startest.
    Vielen Dank für deine Antwort!

    Du hast absolut recht, die Anführungszeichen habe ich falsch gesetzt. Laut der Dokumentation von Apple sind die aber auch nicht nötig. Die müssen also weg. Wenn ich sie weglasse, erscheint aber leider noch die gleiche Fehlermeldung.

    Andere Hochkommata? Das mag sein ... aber ich hab da schon dran rumprobiert. Jetzt habe ich sogar aus den Dateien, die Apple verwendet, die Hochkommata per copy-and-paste eingefügt - reine Verzweiflung. Das hilft auch nicht.

    Eine extra Datei? Damit hatte ich heute nachmittag mal angefangen. Statt -p habe ich -f geschrieben und dann die Datei extra hinterlegt. Das funktionierte nicht. Daher habe ich das dann alles so zusammengefaßt, wie ich es oben geschrieben.

    Es ist wirklich zum verrückt werden ...

    Vielen Dank nochmal und liebe Grüße!
  • Heiko schrieb:

    Eine extra Datei? Damit hatte ich heute nachmittag mal angefangen. Statt -p habe ich -f geschrieben und dann die Datei extra hinterlegt. Das funktionierte nicht. Daher habe ich das dann alles so zusammengefaßt, wie ich es oben geschrieben.
    Das hat mich auch interessiert und ich habe etwas herumgespielt.

    Mit dem gesamten Profil in der Kommandozeile (Parameter "-p") ist es etwas mühselig. Ich habe daher erst einmal mit einer eigenen Sandbox-Profildatei tor.sb angefangen und in dieser einen Teil Deiner Sandbox-Berechtigungen hinterlegt:

    Quellcode

    1. (version 1)
    2. (deny default)
    3. (allow file-read*
    4. (regex #"/Users/matthias/Documents")
    5. (regex #"/Applications/Zusatz-Programme/TorBrowser.app")
    6. (regex #"/private/tmp/")
    7. (regex #"/private/var/tmp/")
    8. )
    9. (allow process-exec
    10. (regex #"/Applications/Zusatz-Programme/TorBrowser.app/Contents/MacOS/firefox")
    11. )
    Alles anzeigen

    Hilfreich ist bei der Recherche übrigens ein Blick nach /System/Library/Sandbox/Profiles, dann kann man sich vor Sandbox-Profilen nicht retten. Das ganze habe ich dann in der Shell wie folgt aufgerufen (und einen Abbruch kassiert):

    Quellcode

    1. sandbox-exec -f tor.sb /Applications/Zusatz-Programme/TorBrowser.app/Contents/MacOS/firefox
    2. dyld: Library not loaded: /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
    3. Referenced from: /Applications/Zusatz-Programme/TorBrowser.app/Contents/MacOS/firefox
    4. Reason: no suitable image found. Did find:
    5. /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa: file system sandbox blocked stat()
    6. /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa: file system sandbox blocked stat()
    7. Abort trap: 6
    Klappt also eigentlich super ... ausser, dass dem Tor-Browser die wenigen Lese-Rechte nicht schmecken, weil er nicht einmal auf die Cocoa-Frameworks zugreifen kann, aber das ist prinzipiell ja auch Sinn der Sache (wenn auch vielleicht nicht für diese Verzeichnisse) :D

    Ich habe nun nicht mehr Deine Erweiterung auf Schreibrechte ergänzt ... zum einen, weil ich dieses Recht nicht verstehe, zum anderen, weil es nicht Dein Problem ist. Nutze eine Profil-Datei und ergänze das "#" vor den regulären Ausdrücken, dann sollte Dein Vorhaben gelingen. Ich muss gestehen, es mit dem Parameterstring ("-p") auch nicht hinbekommen zu haben, wenn der Parameter etwas komplexer wurde. Aber ich finde eine Datei auch weit lesbarer / besser wartbar.

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • MyMattes schrieb:

    Ich habe übrigens wenig Info zur Definition der Policies gefunden ... schon gar nicht von Apple. Welche Dokumentation hast Du oben gemeint?

    Hier eine m. E. hilfreiche inoffizielle Aufstellung

    Mattes
    Hallo Mattes :thumbsup:

    Vielen Dank für deine Hilfe! Das ist wirklich super!

    Mit der Dokumentation, das habe ich durcheinandergebracht. Ich meinte die Übersicht, die du oben verlinkt hast. Dass die nicht von Apple ist, habe ich gar nicht gesehen. Da war ich wohl schon zu erschöpft vom vielen Rumprobieren :whistling:

    Ich habe unterdessen auch weitergemacht. Und offenbar war der Grund für die Fehlermeldung wirklich die Syntax. Wenn man es so sauber schreibt wie du, dann läuft es. Und dann muss man natürlich noch testen, welche Rechte nötig sind, damit die App stabil ist. Ich bin jetzt dabei, für ein paar Apps, denen ich nicht so richtig traue, auf die ich aber auch nicht so einfach verzichten kann/will, Sandkästen einzurichten.

    Nochmal vielen Dank und ganz liebe Grüße

    Heiko