macOS

Как удалить флаг карантина на macOS: 3 простых способа

Флаг карантина (quarantine) на macOS блокирует запуск файлов из ненадежных источников. В этом гайде вы научитесь удалять атрибут com.apple.quarantine через Terminal, чтобы запускать скрипты и приложения без предупреждений.

Обновлено 14 февраля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:macOS 10.15 (Catalina) и вышеmacOS 11 (Big Sur)macOS 12 (Monterey)macOS 13 (Ventura)macOS 14 (Sonoma)Apple Silicon (M1/M2/M3)

Введение / Зачем это нужно

macOS автоматически добавляет специальный атрибут com.apple.quarantine (флаг карантина) к файлам, скачанным из интернета через браузеры, почтовые клиенты или мессенджеры. Этот механизм, реализованный в Gatekeeper, предотвращает запуск потенциально опасного ПО.

Однако иногда вы можете столкнуться с ситуацией, когда:

  • Собственный скрипт или программа блокируется, хотя вы уверены в её безопасности.
  • Файл был скачан с доверенного источника, но macOS всё равно показывает ошибку «Разработчик не может быть проверен» или «Файл поврежден».
  • Необходимо быстро развернуть собственное приложение на нескольких Mac без подписки.

Удаление флага карантина снимает эту защиту для конкретного файла или папки, позволяя запускать содержимое без предупреждений. Важно: делайте это только для файлов, происхождение которых вы полностью проверяете и доверяете.

Требования / Подготовка

Перед началом убедитесь, что:

  1. У вас есть доступ к Terminal (Терминал) — он находится в Программы → Утилиты или через Spotlight (Cmd+Пробел, введите «Терминал»).
  2. Вы знаете полный путь к файлу или папке, с которой хотите снять атрибут. Для этого можно перетащить файл в окно Terminal — путь вставится автоматически.
  3. У вас есть права на запись в целевую папку. Если файл находится в системной директории (например, /Applications), может потребоваться sudo (пароль администратора).
  4. Вы понимаете риски безопасности: удаление флага карантина отключает одну из защитных механизмов macOS. Никогда не снимайте атрибут с файлов из непроверенных источников.

Пошаговая инструкция

Способ 1: Удаление флага для одного файла

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

  1. Откройте Terminal.
  2. Введите команду, заменив <полный_путь_к_файлу> на реальный путь:
    xattr -d com.apple.quarantine /полный/путь/к/файлу
    
    Например:
    xattr -d com.apple.quarantine ~/Downloads/my-script.sh
    
    Что делает команда:
    • xattr — утилита для работы с расширенными атрибутами файлов.
    • -d — флаг удаления (delete).
    • com.apple.quarantine — название атрибута, который отвечает за карантин.
  3. Нажмите Enter. Если файл доступен для записи, вы не увидите никакого вывода — это нормально. Ошибка Operation not permitted означает, что файл защищен SIP или требует прав администратора. В этом случае попробуйте добавить sudo перед командой (введите пароль администратора).

Способ 2: Удаление флага для всех файлов в папке

Если вы скачали архив с несколькими файлами или папкой приложений, удобно удалить атрибут рекурсивно.

  1. В Terminal выполните:
    xattr -dr com.apple.quarantine /путь/к/папке
    

    Пример:
    xattr -dr com.apple.quarantine ~/Downloads/MyApp.app
    

    Ключевые флаги:
    • -r — рекурсивно обработать все вложенные файлы и папки.
    • -d — удалить указанный атрибут.
  2. Для текущей директории (если вы уже находитесь в нужной папке) используйте точку:
    xattr -dr com.apple.quarantine .
    

Способ 3: Массовое удаление по расширению или шаблону

Иногда нужно снять карантин только с определенных типов файлов (например, все .sh скрипты). Это можно сделать через find.

  1. Выполните команду:
    find /путь/к/папке -name "*.sh" -exec xattr -d com.apple.quarantine {} \;
    

    Как это работает:
    • find ищет файлы по шаблону (-name "*.sh").
    • -exec выполняет для каждого найденного файла команду xattr -d com.apple.quarantine.
    • {} заменяется на имя файла.
    • \; завершает команду -exec.
  2. Удалите атрибут со всех файлов, содержащих «app» в имени:
    find ~/Downloads -name "*app*" -exec xattr -d com.apple.quarantine {} \;
    

Проверка результата

После удаления атрибута убедитесь, что флаг карантина действительно снят:

  1. Для одного файла:
    xattr -l /путь/к/файлу
    

    В выводе не должно быть строки com.apple.quarantine. Если атрибут удален, вы увидите только другие атрибуты (если они есть) или пустой вывод.
  2. Для папки (рекурсивная проверка):
    find /путь/к/папке -exec xattr -l {} \; | grep com.apple.quarantine
    

    Если команда ничего не выведет — значит, атрибут удален со всех файлов.
  3. Попробуйте запустить файл. Предупреждение Gatekeeper должно исчезнуть. Если оно осталось, возможно, проблема в другом (например, отсутствие подписи или notarization).

Возможные проблемы

Ошибка «Operation not permitted» при выполнении xattr

  • Причина: Файл находится в защищенной системной папке (например, /System, /usr), и включена SIP (System Integrity Protection). Или у пользователя нет прав на запись.
  • Решение:
    • Не отключайте SIP ради одного файла — это серьезно снижает безопасность системы.
    • Если файл находится в /Applications или вашей домашней папке, попробуйте выполнить команду с sudo (введите пароль администратора).
    • Переместите файл в другую папку (например, ~/Applications или ~/Downloads), удалите атрибут, а затем переместите обратно.

Флаг карантина появляется снова после повторного скачивания

  • Причина: macOS добавляет атрибут автоматически при каждом скачивании через Safari, Chrome и т.д.
  • Решение: Удаляйте флаг после каждого скачивания или настройте браузер на отключение проверки (не рекомендуется). Для частых сценариев создайте скрипт-обертку.

Предупреждение Gatekeeper остается даже после удаления флага

  • Причина: Файл не подписан или не прошел notarization (официальную проверку Apple). Удаление com.apple.quarantine снимает только один тип проверки.
  • Решение:
    • Добавьте файл в исключения: «Системные настройки» → «Конфиденциальность и безопасность» → «Безопасность» → нажмите «Все равно открыть» рядом с файлом.
    • Или временно отключите Gatekeeper (только для тестовых сред): sudo spctl --master-disable. Внимание: это отключает все проверки подписи для всех приложений. Включайте обратно: sudo spctl --master-enable.

Команда find не находит файлы или удаляет лишнее

  • Причина: Неправильный путь или шаблон.
  • Решение:
    • Проверьте путь: ls /путь/к/папке — убедитесь, что папка существует.
    • Уточните шаблон: find /путь/к/папке -name "*.app" (только приложения).
    • Сначала выполните find без -exec, чтобы увидеть список файлов: find /путь/к/папке -name "*.app".

Атрибут удаляется, но файл не запускается с сообщением «Файл поврежден»

  • Причина: Файл действительно поврежден или имеет неправильный формат (например, скачан не полностью).
  • Решение:
    • Проверьте контрольную сумму (если она предоставляется источником).
    • Перекачайте файл заново.
    • Убедитесь, что файл предназначен для вашей версии macOS (Intel vs Apple Silicon).

Помните: Удаление флага карантина — это обход защиты. Используйте этот метод осознанно, только для файлов, которые вы создали сами или получили от абсолютно доверенного источника. Для постоянной работы с неподписанным ПО рассмотрите возможность настройки отдельной среды разработки или использования виртуальной машины.

Часто задаваемые вопросы

Безопасно ли удалять флаг карантина на Mac?
Почему после удаления флага карантина приложение все равно не запускается?
Как удалить флаг карантина со всех файлов в папке одним действием?
Можно ли удалить флаг карантина через графический интерфейс Finder?

Полезное

Проверить наличие флага карантина у файла
Удалить флаг для одного файла
Удалить флаг для всех файлов в папке
Подтвердить удаление атрибута
Запустить файл