objective-c - 目前支持的提权方式

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

有人可以阐明目前支持的并推荐在辅助工具中提升权限的方法吗?

据我了解,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/

相关文章:

cocoa - NSOutlineView - 启动时滚动到顶部

iphone - ASP 页面和 Cocoa/ObjC 之间的安全通信

macos - Mac SDK 库 : What's in there? foo.dylib 与 foo.A.dylib 与 foo.B.dylib

swift - 将 Common Crypto AESEncryption 迁移到 CryptoSWIFT,因为在某些情况下解密字符串变为空

objective-c - 我的套接字代码有什么问题?

cocoa - 将 CoreData 与对象一起使用?

ios - 相机在 IOS 中不工作

git - 将 Visual Studio Code 设置为我的 Mac 的默认编辑器(包括编辑 Git 提交)

iphone - objective-c 中的错误处理与异常处理

javascript - iOS 上的 WebViewJavascriptBridge