我正在寻找一种在MacOS上“沙盒化”“守护进程”的方法。 在Linux上,我们有各种内核机制来限制某些进程的操作(Linux命名空间、seccomp。容量也是如此)。 在OpenBSD上,我们有chroot和pledge。 在FreeBSD上,我们有jails。
我知道在最近版本的MacOSX上可用的App Sandboxing机制。 但据我所知,它仅适用于用户可以从/Applications启动的经典GUI应用程序。
这里我只有一个系统守护程序(=进程),我想将其沙盒化。 例如,该守护程序不需要写入文件系统,或者不需要使用网络等。 因此,我希望MacOS系统通过禁止访问某些资源来强制执行此操作。 launchd也没有帮助。 使用launchd,我可以正确“守护化”我的进程,保留一些套接字端口,但我没有看到任何“围栏”该进程的方式。
sandbox_init看起来更有趣,但它已被“弃用”。
这只留下了MacOS上的chroot。当然,chroot仅防止某些文件系统使用。
还有其他可用的沙盒化机制吗?
我知道在最近版本的MacOSX上可用的App Sandboxing机制。 但据我所知,它仅适用于用户可以从/Applications启动的经典GUI应用程序。
这里我只有一个系统守护程序(=进程),我想将其沙盒化。 例如,该守护程序不需要写入文件系统,或者不需要使用网络等。 因此,我希望MacOS系统通过禁止访问某些资源来强制执行此操作。 launchd也没有帮助。 使用launchd,我可以正确“守护化”我的进程,保留一些套接字端口,但我没有看到任何“围栏”该进程的方式。
sandbox_init看起来更有趣,但它已被“弃用”。
这只留下了MacOS上的chroot。当然,chroot仅防止某些文件系统使用。
还有其他可用的沙盒化机制吗?