macos - 在与要安装的软件包具有相同 root 权限的软件包中创建安装程序插件 (Mac OS X)

标签 macos installation osx-lion package root

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

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

每个包都可以通过管理权限进行复制,同时运行安装前和安装后脚本,但此步骤是在插件执行之后,而我之前需要运行它。

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

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

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

提前致谢。

最佳答案

老问题,但我会将其作为一个选项提出。

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

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

有点绕弯,但比尝试不使用 AuthorizationExecuteWithPrivileges 更有效,而且更容易

关于macos - 在与要安装的软件包具有相同 root 权限的软件包中创建安装程序插件 (Mac OS X),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9693673/

相关文章:

r - 更新到 macOS Catalina 后无法使用 C++ 代码编译 R 包

github - 使用 install_github 在分支上安装包时出错

objective-c - 子上下文中与 NSManagedObject 的绑定(bind)仅适用于新对象

objective-c - 在 OSX Lion 中设置单个桌面的背景图像

python - 在 Lion 上安装 Scrapy - libxml/xmlversion.h 不可用

linux - 无法在 Mac 上安装 ejabberd

macos - 如何快速获取分辨率更改事件?

objective-c - 如何使用 Mac 上的系统首选项以编程方式安排系统唤醒?

installation - 如何通过 Inno Setup 更改 "standard"安装类型?

c# - 如何创建防篡改安装