Поддерживаемый в настоящее время способ повышения привилегий - PullRequest
6 голосов
/ 11 июля 2011

Может ли кто-нибудь пролить свет на поддерживаемые в настоящее время и порекомендовать способы повышения привилегий в вспомогательном инструменте?

Насколько я понимаю, следующие способы не поддерживаются Apple:

  • setuid
  • AuthorizationExecuteWithPrivileges ()

Я ищу способ запустить / usr / sbin / softwareupdate и поместить launchd в /Library/LaunchDaemons.

Любая документация или пример кода будут оценены.

Ответы [ 2 ]

1 голос
/ 11 июля 2011

Новый, официально поддерживаемый, введенный в 10.6 метод называется SMJobBless ().Тем не менее, на это очень мало документации;краткий поиск в Google показал несколько сообщений в блоге.

0 голосов
/ 11 июля 2011

Как вы говорите, Apple рекомендует избегать двоичных файлов setuid и AuthorizationExecuteWithPrivileges из соображений безопасности.Рекомендуемый подход заключается в запуске привилегированного вспомогательного инструмента (по требованию) с помощью launchd, связывающегося с этим помощником из вашего приложения посредством IPC через сокет домена Unix.Привилегированный помощник будет запущен launchd с необходимыми привилегиями

Пример кода BetterAuthorizationSample дает пример этого.

...