Почему bash-скрипт, запускаемый напрямую, не нуждается в разрешениях пользователя, а в .app-файле, в котором выполняется скрипт, они нужны? - PullRequest
0 голосов
/ 16 декабря 2018

У меня есть скрипт bash myscript, который загружает некоторый яблочный скрипт, чтобы запросить графический интерфейс для пользователя, чтобы запросить его пароль.

  • Если я запускаю bash-файл напрямую, вне пакета .app, он может сделать это без запроса системы do you want to allow this program to access...[stuff]?

  • Но если я помещу тот же файл bash в комплект .app (с тем же именем, что и у скрипта), и дважды щелкну по файлу .app, то сначала отобразится приглашение системы запросить авторизацию пользователя.Я не добавил никаких специальных прав в приложение.

Есть ли ссылка, объясняющая, чем отличается безопасность .app для выполнения скрипта в отличие от командной строки?

1 Ответ

0 голосов
/ 16 декабря 2018

В обоих случаях скрипт запускается приложением.В одном случае это приложение является терминалом, и оно имеет необходимые разрешения.Ваше приложение на данный момент не работает.

Это изменение в 10.14, описанное в заметках о выпуске :

Отправка событий Apple из приложения -включая апплеты скрипта - теперь требует одобрения пользователя.Список утвержденных в настоящее время приложений можно просмотреть и отредактировать в категории «Автоматизация» на вкладке «Конфиденциальность» в «Системных настройках»> «Безопасность и конфиденциальность».Если событие заблокировано из-за того, что пользователь не утвердил это приложение, событие завершится ошибкой с кодом ошибки: -1743 («: Не разрешено отправлять события Apple в»).Событие может быть предварительно подсвечено с помощью AEDeterminePermissionToAutomateTarget (: : : :).

Мохаве ввел очень строгие элементы управления Apple Events (ядро AppleScript), что значительно усложнило автоматизацию. Майкл Цай собрал множество полезных обсуждений проблем.

См. Также: com.apple.iTunes AEDeterminePermissionToAutomateTarget всегда возвращает -600

...