2

いくつかのものをインストールするために、Mac パッケージを作成しました。一部のデータを /Library/Application Support/Apple/Mail/Stationery/Apple/Contents/Resources/Stationery/Contents/Resources/ にコピーすることになっている postflight スクリプトがあります - ここに記載されている理由: How can I build Linux 上の Mac パッケージ? (BOM ファイルの問題) postflight スクリプトである必要があります。

ただし、機能しませんでした(zipファイルをダウンロードして解凍し、言及された場所にcpするだけでした)。cp に 2> を追加してエラーを確認したところ、次のようになりました。

cp: /Library/Application Support/Apple/Mail/Stationery/Apple/Contents/Resources/Stationery/Contents/Resources/: 許可が拒否されました

Info.plist を再確認したところ、適切な設定が保持されているように見えます。

<key>IFPkgFlagAuthorizationAction</key>
<string>RootAuthorization</string>

しかし、スクリプトにはまだ権限がありません。「whoami」を試してみたところ、現在ログインしているユーザーが返されました。さらに興味深いのは、インストーラーが実際に管理者認証を求めていることです。このスクリプトをルート/管理者/より大きな権限を持つ人として実行するにはどうすればよいですか?

4

2 に答える 2

1

インストーラーが管理者認証アラートを表示しているという事実は、インストーラーが既に認証されていることを意味します (おそらく管理者/ルートのみの場所にファイルをインストールするため)。

記憶が正しければ、私自身の Postflight スクリプトで、sudoスクリプト内に呼び出しを追加して、admin/root 特権を実行しました。そのアプローチを試して、それが機能するかどうかを確認してください。ただし、これが「ベストプラクティス」のアプローチであるかどうかはわかりません(または、インストーラーに署名できるため、そうかもしれません)。

于 2012-01-08T14:28:40.810 に答える
0

Lion では不可能だと思います。Lion のインストーラーは、現在のユーザーからスクリプトを起動します。

于 2012-01-24T07:02:03.473 に答える