我已经创建了Mac软件包以便安装我的一些东西。我有一个postflight脚本应该将一些数据复制到/ Library / Application Support / Apple / Mail / Stationery / Apple / Contents / Resources / Stationery / Contents / Resources / - 并且由于这里提到的原因:{{3}它需要是postflight脚本。
然而它没有用(它只是下载一个zip文件,解压缩它和cp到提到的位置)。所以我通过添加2>检查了错误。到cp,这是发生了什么:
cp:/ Library / Application Support / Apple / Mail / Stationery / Apple / Contents / Resources / Stationery / Contents / Resources /:Permission denied
我仔细检查了我的Info.plist,看起来保留了正确的设置:
<key>IFPkgFlagAuthorizationAction</key>
<string>RootAuthorization</string>
但该脚本仍然没有权限。我尝试了“whoami”,它返回当前登录的用户。更令人好奇的是,安装程序实际上要求管理员身份验证。你们有什么想法我应该怎样做才能让这个脚本以root / admin / whoever的身份运行?
答案 0 :(得分:1)
安装程序启动管理员身份验证警报这一事实意味着安装程序已经过身份验证(可能是将文件安装到admin / root-only位置)。
如果我没记错的话,在我自己的Postflight脚本中,我在脚本中添加了对sudo
的调用来执行admin / root特权事务。尝试这种方法,看看它是否有效。我不知道这是不是最好的做法&#34;尽管方法(或者可能是因为安装程序可以签名)。
答案 1 :(得分:0)
我认为Lion中的这是不可能的。狮友的安装程序会从当前用户启动脚本。