有人可以阐明目前支持的并推荐在辅助工具中提升权限的方法吗?
据我了解,Apple 不支持以下方式:
- 设置标识符
- AuthorizationExecuteWithPrivileges()
我正在寻找一种能够运行/usr/sbin/softwareupdate 并在/Library/LaunchDaemons 中放置 launchd 的方法。
任何文档或示例代码将不胜感激。
最佳答案
如您所说,出于安全原因,Apple 建议避免使用 setuid 二进制文件和 AuthorizationExecuteWithPrivileges。推荐的方法似乎是通过 launchd 运行(按需)特权帮助工具,通过 IPC 通过 Unix 域套接字与您的应用程序中的该帮助工具通信。特权助手将由具有必要特权的 launchd 运行
BetterAuthorizationSample sample code给出了一个这样做的例子。
关于objective-c - 目前支持的提权方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6644874/