Все известные предыдущие версии macOS работали с таким контекстом сценария:
osascript -e "/path/to/my/app.command" with administrator privileges
Теперь он просто молча терпит неудачу ... после запроса пароля администратора. Командный файл - это то, что изначально использовалось для запуска приложения, и у приложения есть кнопка для повторного запуска с привилегиями ... и предыдущее непривилегированное приложение закрывается.
Если я удалю "с правами администратора", он перезапускается. если это есть, это не так.
Если я попробую использовать:
/usr/bin/security execute-with-privileges /path/to/my/app.command
Он также не работает ... никогда даже не показывает запрос пароля.
Я пробовал также «sudo open /Applications/myApp.app», но это, конечно, не запускается с привилегиями.
Из оболочки я могу запустить sudo свое приложение, и это нормально, но я не могу ожидать, что средний пользователь сможет выполнять sudo в оболочке.
Как я уже сказал, это был хороший метод, который работал, вероятно, последние 6-8 лет ... но теперь не работает. У кого-нибудь есть какие-то уловки или способы обойти это?
В свое время ... и я понятия не имею, почему, я увидел всплывающее окно безопасности OSX, указывающее, что "java" не является доверенным приложением, и мои настройки разрешают только приложения из магазина приложений. Но это случилось всего один раз ... и это было странно. Я нажал ОК, оно исчезло. Я подумал, что, возможно, Java была помещена в карантин, поэтому я выполнил команду, чтобы очистить этот флаг:
xattr -rd com.apple.quarantine /path/to/the/binary/java
Но это не имело значения. Я уверен, что это новые функции безопасности в Catalina, которые усложняют задачу ... но я не могу понять, почему и как с ними работать. Это приложение java, которое запускается через файл app.command, который находит java на компьютере, а затем запускает его ... по умолчанию поиск локальной копии в собственной подпапке.
1 ответ
Проверьте настройки песочницы вашего проекта. в файле прав App Sandbox
должно быть установлено значение false. Функция песочницы не позволяет вашему приложению повышать привилегии в вашем приложении. ссылка: https://developer.apple.com/app-sandboxing/
Похожие вопросы
Новые вопросы
java
Java - это язык программирования высокого уровня. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег редко используется отдельно и чаще всего используется вместе с [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] и [maven].