我正在尝试使用 BetterAuthorizationSample 而不是采用所谓的“恶意”方式使用 setuid 以获得根权限。
目前我正在使用 AuthorizationCreate();使用 BLAuthentication 获得 root 访问权限来更改某些文件,但我对每次启动应用程序时都必须不断输入密码这一事实感到有些恼火。
所以我遇到了 Apple 的 HelperTool 方法,但我就是想不通。
我已经使用 Cocoa 几个月了,但这超出了我的能力范围,但我仍然需要它。我将如何实现此工具来执行简单的 root 特权任务?
是否有一种更简单的方法来使用 HelperTool 的概念,以便我的用户只需输入一次密码就可以永久授予 root 权限?
最佳答案
在 Mac OS X 上制作辅助工具的“现代”方法是将其作为应用程序的一部分发布,并且 use the ServiceManagement
framework to deploy it .您的用户在部署该工具时输入一次密码。将其安装为 launchd
作业;从那时起你使用 any launchd on-demand mechanism启动助手并让它为您工作。
请注意,上面链接的博客文章建议您使用 Authorization Services 保护助手的后续调用。升级,以避免任何人都可以使用的任意权限升级。这似乎有点影响“用户只需输入一次密码”的好处,尽管您可以使用 AuthorizationRightSet()
在策略数据库中创建应用程序的授权 token ,这样您就可以实际定义用户是否需要在首次部署时出示密码。
该帖子中的示例代码是 on GitHub ,并演示了如何使用 ServiceManagement
部署帮助工具和授权服务来控制对它的访问。
关于objective-c - 如何使用 BetterAuthorizationSample? - cocoa ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5773880/