Доступ службы macOS к вашим файлам

Если вы запускаете SyncThemAll как фоновую службу на macOS, она может сообщать «Permission denied» о папках, которые явно принадлежат вам — «Документы», «Рабочий стол», «Загрузки», iCloud Drive, внешний диск.

Это не сбой, и вы ничего не настроили неправильно. macOS намеренно не пускает фоновые службы к вашим личным файлам, пока вы не разрешите это сами — вручную и один раз.

Сначала: нужна ли вам служба вообще?

Большинству — нет. Работать без окна SyncThemAll умеет двумя разными способами, и только один из них требует всего описанного ниже:

Что вам нужноЧто включить
Синхронизация работает, пока я в системе, и окно держать открытым не надоАвтозапуск — Настройки → Система → Работать в фоне и Запускать при входе в систему. Без пароля администратора, без настроек безопасности, без лишних шагов.
Синхронизация должна работать, даже когда никто не вошёл в систему — Mac перезагрузился сам и продолжает работатьСлужба — и тогда эта страница для вас.

Если вам подходит первая строка, включите автозапуск и не читайте дальше. Служба существует для машин, которые работают, когда за ними никто не сидит, — и именно эта возможность стоит одного дополнительного шага настройки.

Почему macOS требует этого от вас

macOS защищает некоторые папки — «Рабочий стол», «Документы», «Загрузки», iCloud Drive, съёмные и сетевые тома — механизмом под названием TCC. Когда обычное приложение впервые обращается к такой папке, система показывает диалог: «SyncThemAll запрашивает доступ к файлам в папке "Документы"». Вы разрешаете один раз и больше об этом не думаете.

Служба в этом разговоре участвовать не может. Она стартует до того, как кто-либо вошёл в систему, и работает вне вашего сеанса: диалог показывать негде и отвечать на него некому. В таких случаях macOS не угадывает — она просто отказывает, и делает это каждый раз.

Права администратора здесь ничего не меняют. TCC действует не на уровне файловых прав: служба блокируется, даже когда запущена с полными системными полномочиями. По той же причине о такой же настройке просят программы резервного копирования вроде Backblaze, Carbon Copy Cloner и Arq.

Значит, разрешение должно прийти непосредственно от вас, в «Системных настройках». Об этом — всё остальное на странице.

Как выдать доступ

SyncThemAll сам подскажет, какой именно файл нужно добавить, — искать его не придётся.

  1. Откройте SyncThemAll и нажмите «Служба» на панели слева.
  2. В диалоге нажмите «Открыть настройки». macOS откроет «Конфиденциальность и безопасность → Полный доступ к диску».
  3. Вернитесь в SyncThemAll и нажмите «Скопировать путь» — в буфер попадёт расположение программы службы.
  4. В «Системных настройках» нажмите + под списком. Откроется окно выбора файла.
  5. Нажмите ⌘ + Shift + G, вставьте путь, нажмите Return и затем «Открыть».
  6. Убедитесь, что переключатель напротив добавленной записи включён.
  7. Вернитесь в SyncThemAll и нажмите на службе «Остановить», а затем «Запустить».

Последний шаг важен: macOS применяет новое разрешение при следующем запуске программы, поэтому работающая служба не заметит изменения, пока её не перезапустить. Кнопки «Остановить» и «Запустить» находятся в том же диалоге.

Сообщение «Служба пока не видит ваши файлы» после этого должно исчезнуть. Если нет — проверьте, что переключатель из шага 6 действительно включён и что вы добавили файл из шага 3, а не само приложение SyncThemAll (об этом ниже).

Почему нельзя просто добавить приложение SyncThemAll?

Потому что для macOS служба — самостоятельная программа, а не часть приложения, и такие разрешения система выдаёт каждой программе отдельно. Доступ, выданный приложению, на службу не распространяется, и наоборот. Путь, который копируется на шаге 3, ведёт внутрь пакета приложения — к той программе, которую служба и запускает:

SyncThemAll.app/Contents/Resources/engine/syncthemall

Finder обычно скрывает содержимое пакетов приложений — поэтому на шаге 5 используется ⌘ + Shift + G, чтобы перейти сразу по пути. Если вам удобнее перетащить файл в список мышью, нажмите в диалоге SyncThemAll не «Скопировать путь», а «Показать в Finder» — откроется папка с уже выделенным файлом.

Что меняется после выдачи доступа

Служба сможет читать и записывать ваши папки, включая те, что вы синхронизируете. Два следствия стоит знать заранее:

Файлы, созданные службой, принадлежат системе, а не вам. Если служба скачает файл в папку «Документы», а вы потом захотите удалить или переименовать его в Finder, macOS попросит пароль. Это нормально: файл создан программой системного уровня. Удаление того же файла из самого SyncThemAll пароля не требует.

Разрешение привязано именно к этой программе. Если вы перенесёте SyncThemAll в другую папку или переустановите его так, что программа будет заменена, доступ может потребоваться выдать заново. Обычные обновления разрешение сохраняют.

Как отозвать доступ

Откройте «Системные настройки → Конфиденциальность и безопасность → Полный доступ к диску», выберите запись и либо выключите переключатель, либо удалите её кнопкой −. Служба продолжит работать — просто перестанет видеть ваши личные папки. Если вы удаляете саму службу из SyncThemAll, удалите и запись: она будет ссылаться на несуществующую программу.

Не помогло?

Если сообщение остаётся после перезапуска службы или служба сообщает об ошибке доступа к папке, которой нет в списке защищённых, напишите нам — укажите путь к папке и то, что показывает диалог «Служба». По этой паре сразу видно, блокирует ли доступ macOS или дело в чём-то другом.