objective-c - 如何使用 BetterAuthorizationSample? - cocoa

标签 objective-c cocoa authentication root

我正在尝试使用 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/

相关文章:

ios - 加载 .xib 文件时 Cocoapod 编译失败

xcode - 如何在 NSCollectionView 中创建组?

objective-c - Cocoa 中的 XML 模式绑定(bind)/对象模型框架

mongodb - 创建单个root用户访问和管理MongoDB的所有数据库

python - Django 密码重置多次

objective-c - 有没有办法在 Objective-C 中捕获发送到 nil 的消息?

objective-c - 如何将事件指示器添加到导航栏?

c# - 从 Azure 身份获取用户名

objective-c - 将 Swift 对象传递给 JavaScript 时崩溃

macos - 插入行时保持相同的 NSTableView 滚动位置