目前支持的提升权限的方法

And*_*tte 6 macos cocoa objective-c osx-snow-leopard

有人可以了解当前支持并建议提升帮助工具权限的方法吗?

根据我的理解,以下方式不是Apple支持的方式:

  • setuid的
  • AuthorizationExecuteWithPrivileges()

我正在寻找一种能够运行/ usr/sbin/softwareupdate并在/ Library/LaunchDaemons中放置一个launchd的方法.

任何文档或示例代码将不胜感激.

Dav*_*har 0

正如您所说,出于安全原因,Apple 建议避免使用 setuid 二进制文件和 AuthorizationExecuteWithPrivileges。推荐的方法似乎是通过 launchd 运行(按需)一个特权帮助器工具,通过 Unix 域套接字通过 IPC 从您的应用程序与该帮助器进行通信。特权助手将由具有必要特权的 launchd 运行

BetterAuthorizationSample示例代码给出了执行此操作的示例。