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

时间:2011-07-11 01:12:25

标签: objective-c cocoa macos osx-snow-leopard

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

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

  • 的setuid
  • AuthorizationExecuteWithPrivileges()

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

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

2 个答案:

答案 0 :(得分:1)

新的,官方支持的,引入10.6的方法称为SMJobBless()。但是,关于它的文件很少;粗略的谷歌搜索显示了一些博客文章。

答案 1 :(得分:0)

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

BetterAuthorizationSample sample code举例说明了这一点。