Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Mac安装程序包-如何以root或admin身份运行脚本?(飞行后)_Macos_Package_Packagemaker - Fatal编程技术网

Macos Mac安装程序包-如何以root或admin身份运行脚本?(飞行后)

Macos Mac安装程序包-如何以root或admin身份运行脚本?(飞行后),macos,package,packagemaker,Macos,Package,Packagemaker,我创建Mac软件包是为了安装我的一些东西。我有一个postflight脚本,它应该将一些数据复制到/Library/Application Support/Apple/Mail/信纸/Apple/Contents/Resources/信纸/Contents/Resources/——出于这里提到的原因:它需要是postflight脚本 然而,它并没有起作用(它只是下载了一个zip文件,将其解包并将cp保存到提到的位置)。因此,我通过向cp添加2>来检查错误,下面是发生的情况: cp:/Librar

我创建Mac软件包是为了安装我的一些东西。我有一个postflight脚本,它应该将一些数据复制到/Library/Application Support/Apple/Mail/信纸/Apple/Contents/Resources/信纸/Contents/Resources/——出于这里提到的原因:它需要是postflight脚本

然而,它并没有起作用(它只是下载了一个zip文件,将其解包并将cp保存到提到的位置)。因此,我通过向cp添加2>来检查错误,下面是发生的情况:

cp:/Library/Application Support/Apple/Mail/信纸/Apple/Contents/Resources/信纸/Contents/Resources/:权限被拒绝

我已仔细检查了我的Info.plist,似乎保留了正确的设置:

<key>IFPkgFlagAuthorizationAction</key>
<string>RootAuthorization</string>
IFPkgFlagAuthorizationAction
根授权

但是脚本仍然没有权限。我尝试了“whoami”,它返回了当前登录的用户。更奇怪的是,安装程序实际上要求管理员身份验证。你们知道我应该怎么做才能让这个脚本以root/admin/whicher的身份运行吗?

安装程序正在发出管理员身份验证警报这一事实意味着安装程序已经过身份验证(可能是要将文件安装到admin/root-only位置)


如果我没记错的话,在我自己的飞行后脚本中,我在脚本中添加了对
sudo
的调用,以执行管理员/root特权操作。试试这种方法,看看是否有效。我不知道这是否是“最佳实践”方法(或者可能是,因为安装程序可以签名)

我认为这在Lion中是不可能的。Lion的安装程序从当前用户启动脚本。

这不仅仅是“最佳实践”,实际上是唯一的方法。不要轻易放弃!