我注意到在最新的MacOS中,sandbox-exec
命令已被弃用。根据它的手册:
The sandbox-exec command is DEPRECATED. Developers who wish to sandbox an app should instead adopt the App Sandbox feature described in the App Sandbox Design Guide. [...]
此外,还删除了一些命令,例如sandbox-simplify
。另外,似乎跟踪功能不再起作用,以下配置不再产生输出(在早期版本中):
(version 1)
(debug all)
(trace "/tmp/trace.sb")
(deny default)
我的问题是,沙盒化第三方应用程序的“新”方式是什么?我并不是从开发人员的角度提出这个问题。我是作为高级用户提出的,它想要向我不信任的应用程序添加其他沙箱限制。
答案 0 :(得分:5)
尽管Apple声称不赞成使用这种较旧的通过配置文件(有时称为“ Seatbelt”)的沙箱样式,但截至2020年,苹果和第三方开发人员仍在macOS上广泛使用它。您可以在各个地方找到沙箱配置文件为:
/System/Library/Sandbox/Profiles
用于各种macOS系统组件新方法是名称类似的App Sandbox功能(更多详细信息在design guide中)。此较新的沙箱由“权利”控制,“权利”是应用程序开发人员在构建应用程序时可以设置为代码签名一部分的各种标志。在内部,它通过在应用程序启动期间应用配置文件/System/Library/Sandbox/Profiles/application.sb
来利用上述较旧的沙箱配置文件系统。与完全配置文件系统相比,App Sandbox的局限性要大得多,它仅依赖于几个标志和列表,这些标志和列表无法提供与直接使用配置文件相同的灵活性。据我所知,没有办法以用户身份控制这个较新的系统,因为您需要重新打包并重新签约一个应用程序。
作为用户,sandbox-exec
的沙箱配置文件仍然是您在macOS上的主要且唯一的选择。尽管它可能已被弃用,但看起来它们也不会很快消失,因为它仍然广泛用于个人资料形式和作为新的App Sandbox功能的内部层。