Пакет установщика Mac - как запускать скрипты от имени пользователя root или администратора? (Послеполетного) - PullRequest
2 голосов
/ 07 января 2012

Я создал пакет Mac для установки некоторых своих вещей. У меня есть скрипт postflight, который должен скопировать некоторые данные в / Library / Application Support / Apple / Mail / Stationery / Apple / Contents / Resources / Stationery / Contents / Resources / - и по причинам, указанным здесь: Как я могу собрать пакет Mac на Linux? (Проблема файла спецификации) это должен быть скрипт после полёта.

Однако это не сработало (это было просто загрузка файла zip, распаковка его и cp в указанное место). Итак, я проверил ошибки, добавив 2> к cp, и вот что произошло:

cp: / Библиотека / Поддержка приложений / Apple / Почта / Канцелярские товары / Apple / Содержание / Ресурсы / Канцелярские товары / Содержание / Ресурсы /: В доступе отказано

Я дважды проверил свой Info.plist и похоже, что правильная настройка сохранена:

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

Но у скрипта по-прежнему нет разрешений. Я попробовал "Whoami", и он вернулся в настоящее время вошел в систему пользователя. Что еще более любопытно, инсталлятор фактически запрашивает аутентификацию администратора. Ребята, у вас есть какие-либо идеи, что мне делать, чтобы этот скрипт работал от имени пользователя root / admin / кто с большими правами?

Ответы [ 2 ]

1 голос
/ 08 января 2012

Тот факт, что установщик выдает предупреждение аутентификации администратора, означает, что установщик уже аутентифицирован (предположительно, для установки файлов в места с правами администратора / root).

Если я правильно помню, в моих собственных сценариях Postflight я добавил вызовы sudo в сценарии для выполнения привилегированных действий администратора / пользователя root.Попробуйте этот подход и посмотрите, работает ли он.Я не знаю, является ли это подходом «наилучшей практики» (или, может быть, так и есть, поскольку установщики могут быть подписаны).

0 голосов
/ 24 января 2012

Я думаю, что это невозможно в Lion. Программа установки Lion запускает скрипты от текущего пользователя.

...