MacOS tiene un construir en la función de Sandbox que puede ayudarte pero no tiene exactamente la misma funcionalidad que Sandboxy.
Este Entrada del blog de Paolo Fabio Zaino de 2015 explica cómo ejecutar aplicaciones en un sandbox de Mac OS X. Lo resume así:
mediante el uso de sandboxing, se puede restringir el acceso de una aplicación a los recursos del sistema operativo como el sistema de archivos o la red, etc.
Citando su entrada en el blog:
¿Cómo hacer un sandbox de una aplicación?
En primer lugar, para que Mac OS X sepa qué recursos requiere tu aplicación requiere para poder ejecutarse correctamente necesitamos crear un archivo de archivo de configuración. Esta actividad requerirá algo de tiempo y pruebas porque cada aplicación tiene diferentes requisitos
Este es un ejemplo (cambie MyApp por el nombre de su aplicación):
;; This is my first sandbox configuration file!
(version 1)
(deny default)
;; Let's allow file read and write in specific locations and not
;; all over my filesystem!
;; Please note you can add more (regex "^/Users/user_name/xxxxxxxxxxx") lines depending
;; on what your MyApp needs to function properly.
(allow file-write* file-read-data file-read-metadata
(regex "^/Users/user_name/[Directories it requires to write and read from]")
(regex "^/Applications/MyApp.app")
(regex "^(/private)?/tmp/"))
;; You can also add a sperate section for reading and writing files outside your
;; user_name account directory.
(allow file-read-data file-read-metadata
(regex "^/dev/autofs.*")
(regex "^/System/Library")
(regex "^/Applications/MyApp.app")
(regex "^/usr/lib")
(regex "^/var")
(regex "^/Users/user_name"))
;; If your MyApp requires to access sysctl (in read)
(allow mach* sysctl-read)
;; If you want to import extra rules from
;; an existing sandbox configuration file:
(import "/usr/share/sandbox/bsd.sb")
;; If you want to decide in which filesystem paths
;; MyApp is forbidden to write:
(deny file-write-data
(regex #"^(/private)?/etc/localtime$"
#"^/usr/share/nls/"
#"^/usr/share/zoneinfo/"))
;; If your MyApp wants to run extra processes it's be allowed to run only
;; child processes and nothign else
(allow process-exec
(regex "^/Applications/MyApp.app"))
;; If your MyApp requires network access you can grant it here:
(allow network*)
Una vez que hayamos terminado con nuestro archivo de configuración de la caja de arena para nuestro aplicación, podemos simplemente ejecutarlo usando el siguiente comando desde la línea de comandos:
sandbox-exec -f myapp-sandbox-conf /Applications/MyApp.app/Contents/MacOS/MyApp-bin
Donde myapp es el nombre de la aplicación que desea ejecutar en un sandbox.
Si mi archivo genérico de la caja de arena será demasiado genérico para usted y usted quiere ejemplos más prácticos (ya implementados) entonces ejecute su aplicación de terminal aplicación y eche un vistazo a todos los ejemplos ya amablemente proporcionado por Apple:
ls /usr/share/sandbox
En este directorio encontrarás un montón de archivos como
sshd.sb
Para mirar y tener más conocimiento/tutorial para escribir su propio sandbox para su aplicación específica.