gpt4 book ai didi

objective-c - 通过提升的助手和 SMJobBless 获得根访问权限

转载 作者:太空狗 更新时间:2023-10-30 03:33:11 27 4
gpt4 key购买 nike

我正在做一些需要定期将文件安装到/Library 文件夹中的事情。

我知道在过去我可以使用其中一种 Authenticate 方法,但这些方法在 10.7 中已被弃用。

到目前为止,我从阅读中了解到的内容:

我应该创建一个以某种方式获得身份验证的助手,并让该助手执行所有移动任务。我看过一些示例代码,包括一些涉及 XPC 的代码和一个名为 Elevator 的代码,但我有点困惑。

其中很多内容似乎与设置某种客户端/服务器模型有关,但我不确定这将如何转化为我将文件实际安装到正确的目录中。大多数示例只是传递字符串。

我的问题很简单:如何以编程方式在/Library 中创建我的文件夹并定期向其中写入文件,同时只提示用户输入一次密码,而不再提示?我真的不确定如何处理这个问题,而且似乎没有太多文档。

最佳答案

你是对的,没有太多这方面的文档。您基本上会编写另一个应用程序,帮助程序应用程序,它将与 SMJobBless() 一起安装。不出所料,这里棘手的部分是代码签名。对我来说最不明显的部分是每个应用程序的信息 plist 文件中的 SMAuthorizedClientsSMPrivilegedExecutables 条目取决于您用来签署应用程序的身份/证书.编译器/链接器还有一个技巧,可以将信息 plist 文件编译到帮助工具中,这将是一个可执行文件,而不是一个包。

启动并运行助手应用程序后,您必须设计一种与其通信的方法,因为这是两个不同的过程。 XPC 是一种选择,也许是最简单的选择。 XPC 通常与服务器进程一起使用,但您在这里使用的只是 XPC 的通信端。基本上它在两个应用程序之间来回传递字典。为字典创建标准格式。我使用了@“action”、@“source”和@“destination”以及 3 个不同的操作值,@“filemove”、@“filecopy”和@“makedirectory”。这些是我的助手应用程序可以做的 3 件事,如果需要,我可以轻松添加更多。

助手应用基本上会设置 XPC 连接和事件处理程序,并等待连接和命令。这些命令只是一个字典,因此您可以检查适当的键/值并执行任何操作。

如果您需要更多帮助,我可以提供更多详细信息和代码,但这个问题已有 9 个月了,所以我不想浪费时间向您提供您已经了解的详细信息。

关于objective-c - 通过提升的助手和 SMJobBless 获得根访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10729893/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com