gpt4 book ai didi

objective-c - 使用 root 权限部署应用程序

转载 作者:太空狗 更新时间:2023-10-30 04:00:41 24 4
gpt4 key购买 nike

我编写了一个 Cocoa 应用程序,它使用 libpcap 来监控网络流量。由于 libpcap 需要 root 权限,我想知道赋予它 root 权限的最佳方法是什么(例如使用 Package Maker?)。我可以使用拖放式安装程序部署它吗?还是 Package Maker 是我唯一的选择?

此外,我想知道授予我的应用根权限所带来的安全风险。该应用程序还写入磁盘(sqlite 数据库),我读到给写入磁盘根权限的应用程序不是一个好主意。

最佳答案

推荐的 Apple 方法如下:

  • 将需要特权操作的内容分解为单独的可执行文件(即为您使用 libpcap 的内容)。
  • 当应用程序需要启动特权 exe 时,它​​会创建一个授权引用并检查用户是否可以授权(称为预授权),并将对授权的外部引用传递给特权 exe。
  • 当它第一次启动时,特权 exe 在尝试执行特权操作之前再次获得授权。

要使上述工作正常,特权 exe 必须安装为 root 拥有并设置 setuid 位。您可以使用 package maker 来完成此操作,也可以创建 Apple 所说的 self repairing helper tool .这是一个检查它是否以 root 身份运行的工具,如果不是,则通过 AuthorizationExecuteWithPrivileges 调用自身。修复其 setuid 位和所有权。然后它为操作授权并执行操作。

如果您使用 self 修复工具,您可以将它与您的应用程序捆绑在一起并使用拖放安装过程。

我强烈建议您阅读整个 Authorization Programming Guide .它更详细地讨论了所有这些内容,并包含一些示例代码。

关于objective-c - 使用 root 权限部署应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4396249/

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