84

Я скачал некоторые файлы .jar из Интернета и хочу использовать их под Mac OS X. Но ОС, похоже, пометила их расширенным атрибутом com.apple.quarantine (никаких указаний на это, пока я не заметил " @ "). в ls -l и разобрался как использовать ls -l@) - видимо потому что они были скачаны из интернета. Какой правильный способ справиться с этим?

5 ответов5

75

Вам не нужно иметь дело с этим. Откройте его, и OS X попросит вашего разрешения. Или, как предложил Ричард, удалите его, используя что-то вроде:

xattr -d com.apple.quarantine my_jar.jar

Чтобы сделать это автоматически для любого загруженного файла, вы можете прикрепить действие папки к папке загрузки, как описано на macosxhints.com в 10.5: Снимите флаг предупреждения «загруженный файл».

И вот уже давно на Macosxhints.com было опубликовано следующее: для Safari: 10.5: отключите предупреждение файла «скачано из интернета», утверждая, что можно удалить VerifiedDownloadPlugin.plugin из /Library/Internet Plug-Ins . Я не проверял это.

В качестве отступления: иногда нужно запускать одну программу несколько раз на Mac. Это можно сделать с помощью cd /Applications/some-application/ после чего open -n "Application Name.app" . Для этого действительно нужен суффикс .app ; запуск open -n "Application Name" может получить один доступ для остановки GateKeeper:

"Имя приложения" не может быть открыто из-за неизвестного разработчика.

Ваши настройки безопасности позволяют устанавливать только приложения из Mac App Store и определенных разработчиков.

Выше даже удаление расширенного атрибута com.apple.quarantine не исправляет это, но использование суффикса .app работает просто отлично.

(Я никому не советую фактически избавляться от мер безопасности.)

58

Этот атрибут добавлен, чтобы он мог запрашивать подтверждение пользователя при первом запуске загруженной программы, чтобы помочь остановить вредоносное ПО. После подтверждения атрибут должен быть удален автоматически, и тогда программа будет работать нормально.

19
 xattr -d com.apple.quarantine /path/to/file
4

Вы можете отключить предупреждения навсегда, по defaults write com.apple.LaunchServices LSQuarantine -bool false . Он также отключает диалоговые окна гейткипера, даже если вы не разрешали загружать приложения из любой точки системной настройки.

1

Я нашел следующую команду

find Application.app | while read l; do echo $l; xattr -d com.apple.quarantine "$l"; done

очень полезно при попытке избавиться от атрибута. Обратите внимание на двойные кавычки около $l - они вам нужны, если в папке ваших приложений есть файлы с пустым именем.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .