我在 Mac 上有一个应用程序,它需要提升权限才能执行某些任务。为此,我在我的 App 包中携带了一个二进制可执行文件,每当需要提升时,我都会使用SMJobSubmit()
. 除了这个可执行文件,我还向可执行文件提交了一个带有某些参数的 plist 文件,以告诉它它需要做什么。
我担心的是如何确保可执行文件运行是我打算运行的文件。如果有人用恶意的可执行文件替换了可执行文件,如果授予 root 权限可能会造成严重破坏怎么办?launchd 或 SMJobSubmit 是否提供任何豁免权,还是我必须在我的最后验证签名和校验和?奇怪的是,我在网上找不到关于这个问题的讨论,也许我在这里遗漏了一些微不足道的东西。
这个博客给出了一个很好的使用 SMJobSubmit 的例子。我已经在相同的线路上实施了。