Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MacOS上,如何沙箱守护进程?_Macos_Security_Daemon_Sandbox - Fatal编程技术网

在MacOS上,如何沙箱守护进程?

在MacOS上,如何沙箱守护进程?,macos,security,daemon,sandbox,Macos,Security,Daemon,Sandbox,我正在寻找一种在MacOS上“沙盒”一个“守护进程”的方法 在Linux上,我们有各种内核机制来限制某些进程可以做什么(Linux名称空间,在某种程度上还有seccomp.功能)。在OpenBSD上,我们有chroot和誓约。在FreeBSD上我们有监狱 我知道最新版本的MacOSX上提供了应用程序沙箱机制。但据我所知,它应该包含一个用户可以从/应用程序启动的经典GUI应用程序 这里我只需要一个系统守护进程(=进程),我想对它进行沙箱处理。例如,该守护进程不需要写入文件系统,或者不需要使用网络等

我正在寻找一种在MacOS上“沙盒”一个“守护进程”的方法

在Linux上,我们有各种内核机制来限制某些进程可以做什么(Linux名称空间,在某种程度上还有seccomp.功能)。在OpenBSD上,我们有chroot和誓约。在FreeBSD上我们有监狱

我知道最新版本的MacOSX上提供了应用程序沙箱机制。但据我所知,它应该包含一个用户可以从/应用程序启动的经典GUI应用程序

这里我只需要一个系统守护进程(=进程),我想对它进行沙箱处理。例如,该守护进程不需要写入文件系统,或者不需要使用网络等。因此,我希望MacOS系统通过禁止访问某些资源来强制执行该操作

launchd也没有帮助。使用launchd,我可以正确地“守护”进程,保留一些套接字端口,但我没有找到任何方法来“封装”进程

sandbox\u init
看起来更有趣,但它“已弃用”

这只会在MacOS上留下
chroot
。当然,chroot只能防止某些文件系统的使用


还有其他可用的沙盒机制吗?

Chromium仍然使用
沙盒init()
,因为他们说苹果从未提供过合适的替代品。看

但我怀疑,实现这一点的非弃用方法是使用
codesign
将权利列表嵌入到二进制文件中。但是,网上没有太多关于这样做的信息,请参见和

您还可以使用Xcode创建命令行工具项目,在其上启用沙箱,并查看其功能