在MacOS上,如何沙箱守护进程?
我正在寻找一种在MacOS上“沙盒”一个“守护进程”的方法 在Linux上,我们有各种内核机制来限制某些进程可以做什么(Linux名称空间,在某种程度上还有seccomp.功能)。在OpenBSD上,我们有chroot和誓约。在FreeBSD上我们有监狱 我知道最新版本的MacOSX上提供了应用程序沙箱机制。但据我所知,它应该包含一个用户可以从/应用程序启动的经典GUI应用程序 这里我只需要一个系统守护进程(=进程),我想对它进行沙箱处理。例如,该守护进程不需要写入文件系统,或者不需要使用网络等。因此,我希望MacOS系统通过禁止访问某些资源来强制执行该操作 launchd也没有帮助。使用launchd,我可以正确地“守护”进程,保留一些套接字端口,但我没有找到任何方法来“封装”进程在MacOS上,如何沙箱守护进程?,macos,security,daemon,sandbox,Macos,Security,Daemon,Sandbox,我正在寻找一种在MacOS上“沙盒”一个“守护进程”的方法 在Linux上,我们有各种内核机制来限制某些进程可以做什么(Linux名称空间,在某种程度上还有seccomp.功能)。在OpenBSD上,我们有chroot和誓约。在FreeBSD上我们有监狱 我知道最新版本的MacOSX上提供了应用程序沙箱机制。但据我所知,它应该包含一个用户可以从/应用程序启动的经典GUI应用程序 这里我只需要一个系统守护进程(=进程),我想对它进行沙箱处理。例如,该守护进程不需要写入文件系统,或者不需要使用网络等
sandbox\u init
看起来更有趣,但它“已弃用”
这只会在MacOS上留下chroot
。当然,chroot只能防止某些文件系统的使用
还有其他可用的沙盒机制吗?Chromium仍然使用
沙盒init()
,因为他们说苹果从未提供过合适的替代品。看
但我怀疑,实现这一点的非弃用方法是使用codesign
将权利列表嵌入到二进制文件中。但是,网上没有太多关于这样做的信息,请参见和
您还可以使用Xcode创建命令行工具项目,在其上启用沙箱,并查看其功能