Vous voudrez peut-être vous renseigner sur sandbox-exec
intégré dans macOS. Il peut être utilisé pour exécuter n'importe quelle commande dans un "bac à sable" où elle peut se voir refuser l'accès au réseau, empêchée d'écrire des fichiers dans certains emplacements, etc.
En bas de cette réponse se trouve un profil "firefox-sandbox" qui a été présenté en exemple sur Mac OS X hints d'exécution de Firefox dans un bac à sable où sa capacité à écrire des fichiers est (pour la plupart) limitée à votre dossier Téléchargements. Je tiens à préciser que cet exemple date de quelques années, le profil de bac à sable peut nécessiter quelques ajustements pour les versions récentes de macOS et de Firefox, je ne l'ai pas essayé. L'exemple indique que Firefox peut être exécuté dans le bac à sable via :
sandbox-exec -f firefox-sandbox /Applications/Firefox.app/Contents/MacOS/firefox-bin
Voici quelques liens que vous voudrez peut-être consulter qui couvrent sandbox-exec
:
Voici le fichier "firefox-sandbox" :
(version 1)
(deny default)
(allow file-write* file-read-data file-read-metadata
(regex "^/Users/user_name/Downloads")
(regex "^/Users/user_name/Library/Application Support/Mozilla")
(regex "^/Users/user_name/Library/Application Support/Firefox")
(regex "^/Users/user_name/Library/Preferences")
(regex "^/Users/user_name/Library/PreferencePanes")
(regex "^/Users/user_name/Library/Caches/Firefox")
(regex "^/Users/user_name/Library/Caches/TemporaryItems")
(regex "^/Applications/Firefox.app")
(regex "^(/private)?/tmp/"))
(allow file-read-data file-read-metadata
(regex "^/dev/autofs.*")
(regex "^/Library/Preferences")
(regex "^/Library/Internet Plug-Ins")
(regex "^/Library/PreferencePanes")
(regex "^/usr/share/icu")
(regex "^/usr/share/locale")
(regex "^/System/Library")
(regex "^/Applications/Firefox.app")
(regex "^/usr/lib")
(regex "^/var")
(regex #"Frameworks/SDL.framework")
; Notre cache de services de répertoires du module
(regex "^/private/var/tmp/mds/")
(regex "^/private/var/tmp/mds/[0-9]+(/|$)")
(regex "^/Users/user_name"))
(allow mach* sysctl-read)
(import "/usr/share/sandbox/bsd.sb")
(deny file-write-data
(regex #"^(/private)?/etc/localtime$"
#"^/usr/share/nls/"
#"^/usr/share/zoneinfo/"))
(allow process-exec
(regex "^/Applications/Firefox.app"))
(allow network*)