【问题标题】:Currently Supported Way to Elevate Privileges目前支持的提权方式
【发布时间】:2011-10-02 11:01:05
【问题描述】:

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

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

  • setuid
  • AuthorizationExecuteWithPrivileges()

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

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

【问题讨论】:

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


    【解决方案1】:

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

    BetterAuthorizationSample sample code 给出了一个这样做的例子。

    【讨论】:

    • 不,SMJobBless 示例代码提供了一个这样做的示例...... BetterAuthorizationSample 使用其他(旧)方法来提升权限。 SMJobBless 代码更清晰恕我直言,并且是要走的路。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-09
      • 2014-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-08
      • 1970-01-01
      相关资源
      最近更新 更多