Введение / Зачем это нужно
Начиная с macOS Catalina (10.15), Apple значительно ужесточила политику конфиденциальности и безопасности, введя механизм Transparency, Consent, and Control (TCC). Этот механизм требует от приложений явного разрешения на доступ к защищенным ресурсам: контактам, календарю, фото, сообщениям и, что особенно важно для многих утилит и разработческих инструментов, полному доступу к диску (Full Disk Access).
Без этого разрешения приложение не сможет читать или изменять файлы в ключевых системных и пользовательских папках (~/Library, /System, /private), что приводит к ошибкам вида «Нет доступа» или «Операция не разрешена». Этот гайд объясняет, что такое Full Disk Access и как его правильно настроить для сторонних приложений, чтобы они могли работать корректно.
Требования / Подготовка
- Операционная система: macOS Catalina (10.15) или новее (Big Sur, Monterey, Ventura, Sonoma, Sequoia).
- Права: Вы должны быть вошедшим в систему пользователем с правами администратора.
- Приложение: Установленное приложение, которому требуется предоставить доступ. Оно должно находиться в стандартных локациях:
/Applicationsили~/Applications. - Знание имени: Узнайте точное имя файла приложения (например,
Docker Desktop.app). Это можно посмотреть в Finder или в Activity Monitor.
Пошаговая инструкция
Способ 1: Через графический интерфейс (Рекомендуется)
Это самый безопасный и стабильный способ, поддерживаемый Apple.
Шаг 1: Откройте настройки конфиденциальности
- Перейдите в меню
Яблоко ()→Системные настройки...(илиSystem Settingsна английском). - В боковой панели найдите и выберите раздел
Конфиденциальность и безопасность(Privacy & Security). - Прокрутите список прав вниз до категории
Полный доступ к диску(Full Disk Access).
Шаг 2: Добавьте приложение
- В правой части окна вы увидите список приложений, уже имеющих доступ.
- Нажмите кнопку
+(плюс) под списком. - В открывшемся диалоговом окне перейдите в папку
/Applications(или~/Applications). - Найдите и выберите исполняемый файл нужного приложения (обычно это файл с расширением
.app). - Нажмите
Открыть. - Приложение появится в списке. Убедитесь, что напротив него стоит галочка (чекбокс включен).
💡 Совет: Если приложение не отображается в диалоге открытия, нажмите
Отмена, затем в окне настройки Full Disk Access перетащите файл.appиз Finder прямо в список приложений.
Шаг 3: Перезапустите приложение
Это критически важный шаг. Изменения вступают в силу только для новых запусков процесса.
- Полностью закройте приложение (если оно в Dock — кликните правой кнопкой по иконке и выберите
Выход, или используйтеCmd+Q). - Запустите приложение заново из Launchpad, Finder или Dock.
Способ 2: Через Терминал (Альтернативный)
Этот метод полезен для автоматизации или в случаях, когда графический интерфейс по каким-то причинам не работает (например, при управлении через скрипты). Не используйте его для рутинной настройки, если не понимаете последствий.
Шаг 1: Определите идентификатор приложения (Bundle ID)
У каждого приложения в macOS есть уникальный идентификатор (Bundle ID). Его нужно узнать:
# Запустите приложение, если оно не запущено
# Затем выполните команду, чтобы найти его Bundle ID
osascript -e 'id of app "НазваниеВашегоПриложения"'
Например, для Spotify:
osascript -e 'id of app "Spotify"'
# Вывод: com.spotify.client
Или через mdls:
mdls -name kMDItemCFBundleIdentifier /Applications/НазваниеПриложения.app
Шаг 2: Добавьте приложение в базу TCC (НЕ РЕКОМЕНДУЕТСЯ)
Прямое редактирование базы данных TCC (/Library/Application Support/com.apple.TCC/TCC.db) не поддерживается Apple и может привести к нестабильности системы, повреждению базы и потере всех настроек конфиденциальности. Единственный надежный программный способ — это использование системного демона tccd, который не имеет публичного CLI-интерфейса для добавления записей.
Вывод: Для добавления доступа используйте только Способ 1 (GUI). Команда tccutil предназначена только для сброса (удаления) записей, а не для их создания.
Шаг 3: Сброс настроек Full Disk Access (если нужно начать с чистого листа)
Если вы хотите удалить все записи о Full Disk Access (например, для тестирования), выполните в Терминале:
sudo tccutil reset All
Эта команда удалит все пользовательские решения TCC для всех категорий, включая Full Disk Access. После этого приложениям придется снова запрашивать разрешения.
::in-article-ad
::
Проверка результата
После перезапуска приложения проверьте, решена ли проблема:
- Попробуйте выполнить действие, которое ранее вызывало ошибку доступа (например, утилита должна просканировать папку
~/Library/Logs). - Если ошибка «Операция не разрешена» или
EACCES(Permission denied) исчезла — настройка прошла успешно. - Вы также можете проверить, что приложение действительно в списке:
Системные настройки→Конфиденциальность и безопасность→Полный доступ к диску.
Возможные проблемы
Проблема: Приложение не появляется в списке после добавления через +
- Причина: Вы выбрали не тот файл (например, вспомогательный компонент внутри пакета
.appвместо основного исполняемого файла). - Решение: Убедитесь, что добавляете именно файл
НазваниеПриложения.appиз папки/Applications. Если нужно, откройте пакет приложения (правой кнопкой →Показать содержимое пакета) и найдите главный исполняемый файл, но обычно добавлять нужно сам пакет.app.
Проблема: Ошибка доступа сохраняется даже после добавления и перезапуска
- Причина 1: Приложение было запущено до добавления в список и не было перезапущено должным образом (процесс висит в фоне).
- Решение: Откройте
Activity Monitor, найдите процесс приложения, завершите его (Force Quit), затем запустите заново. - Причина 2: На компьютере активен режим Supervised (управляемый через MDM-сервер корпоративной IT-политикой). Такие политики могут блокировать изменения Full Disk Access.
- Решение: Обратитесь к системному администратору.
- Причина 3: Приложению требуется доступ не к общему диску, а к специфичным системным файлам, защищенным System Integrity Protection (SIP).
- Решение: Полный доступ не обходит SIP. Для модификации системных файлов, защищенных SIP, потребуется отключение SIP (что крайне не рекомендуется) или использование специальных методов, предоставляемых самим приложением (например, установка системного расширения).
Проблема: Не могу добавить приложение из-за настроек конфиденциальности
- Причина: В macOS есть защита от добавления приложений, которые уже имеют доступ к другим защищенным ресурсам (например, Accessibility), но это редко.
- Решение: Попробуйте добавить приложение, перетащив его иконку из Finder прямо в окно настроек Full Disk Access.
Проблема: После сброса tccutil reset All приложения снова запрашивают доступ, но диалог не появляется
- Причина: Некоторые приложения (особенно портированные с Windows или старые) не используют стандартный механизм запроса разрешений Apple.
- Решение: Такому приложению нужно добавлять в список вручную через GUI (Способ 1). Если и это не помогает, возможно, приложение просто несовместимо с новой системой TCC.