【问题标题】:Creating Installer Plugins in Packages with same root privileges as the packages to be installed (Mac OS X)在与要安装的包具有相同 root 权限的包中创建安装程序插件 (Mac OS X)
【发布时间】:2012-09-21 04:48:38
【问题描述】:

我正在使用包tool 构建安装程序的Mac OS X 项目中工作。我发现这个工具比一个叫做 Package Maker 的工具用得少,这就是为什么我很难得到任何帮助,但是,问题来了:

我已经按照官方指南 (http://s.sudre.free.fr/Stuff/Installer/Installer_Plugins/index.html) 成功创建了安装程序插件,但现在的问题是我需要其中一个运行root 权限,如果需要,提示输入管理员密码。

可以使用管理权限复制每个包以及运行预安装和安装后脚本,但这一步是在插件执行之后,而我之前需要运行它。

我可以在插件本身中编写一些基本的授权代码(使用已弃用的 AuthorizationExecuteWithPrivileges,因为确实可以在插件中使用 Apple 推荐的复杂解决方法)。

现在一切正常(我的特权代码和安装),但安装程序结束要求输入管理员密码两次,一次用于插件,另一次在实际(包)安装之前,这不是太“用户友好”。

有人知道解决方法或可能的解决方案吗?

提前致谢。

【问题讨论】:

    标签: macos installation osx-lion packages root


    【解决方案1】:

    老问题,但我会把它作为一个选项。

    在我使用软件包制作的安装程序中,我有一个飞行前/飞行后脚本来处理任何需要提升权限的事情。您需要让该特定包请求提升,然后脚本以提升的权限运行。

    所以在这个例子中,我有一个插件来询问用户一些问题,然后我将这些信息存储在 /tmp 以便脚本读取和执行。

    有点绕弯,但比尝试不使用AuthorizationExecuteWithPrivileges 更容易工作和更容易@

    【讨论】:

    • 我理解让脚本以提升的权限运行的意义,但在我的情况下,这并没有让我的插件以这些权限运行(也许这是我在测试期间的最小编码错误)。
    猜你喜欢
    • 2015-05-23
    • 1970-01-01
    • 2013-08-04
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 2012-03-01
    • 2018-02-27
    相关资源
    最近更新 更多