Доступ службы macOS к вашим файлам
Если вы запускаете SyncThemAll как фоновую службу на macOS, она может сообщать «Permission denied» о папках, которые явно принадлежат вам — «Документы», «Рабочий стол», «Загрузки», iCloud Drive, внешний диск.
Это не сбой, и вы ничего не настроили неправильно. macOS намеренно не пускает фоновые службы к вашим личным файлам, пока вы не разрешите это сами — вручную и один раз.
Сначала: нужна ли вам служба вообще?
Большинству — нет. Работать без окна SyncThemAll умеет двумя разными способами, и только один из них требует всего описанного ниже:
| Что вам нужно | Что включить |
|---|---|
| Синхронизация работает, пока я в системе, и окно держать открытым не надо | Автозапуск — Настройки → Система → Работать в фоне и Запускать при входе в систему. Без пароля администратора, без настроек безопасности, без лишних шагов. |
| Синхронизация должна работать, даже когда никто не вошёл в систему — Mac перезагрузился сам и продолжает работать | Служба — и тогда эта страница для вас. |
Если вам подходит первая строка, включите автозапуск и не читайте дальше. Служба существует для машин, которые работают, когда за ними никто не сидит, — и именно эта возможность стоит одного дополнительного шага настройки.
Почему macOS требует этого от вас
macOS защищает некоторые папки — «Рабочий стол», «Документы», «Загрузки», iCloud Drive, съёмные и сетевые тома — механизмом под названием TCC. Когда обычное приложение впервые обращается к такой папке, система показывает диалог: «SyncThemAll запрашивает доступ к файлам в папке "Документы"». Вы разрешаете один раз и больше об этом не думаете.
Служба в этом разговоре участвовать не может. Она стартует до того, как кто-либо вошёл в систему, и работает вне вашего сеанса: диалог показывать негде и отвечать на него некому. В таких случаях macOS не угадывает — она просто отказывает, и делает это каждый раз.
Права администратора здесь ничего не меняют. TCC действует не на уровне файловых прав: служба блокируется, даже когда запущена с полными системными полномочиями. По той же причине о такой же настройке просят программы резервного копирования вроде Backblaze, Carbon Copy Cloner и Arq.
Значит, разрешение должно прийти непосредственно от вас, в «Системных настройках». Об этом — всё остальное на странице.
Как выдать доступ
SyncThemAll сам подскажет, какой именно файл нужно добавить, — искать его не придётся.
- Откройте SyncThemAll и нажмите «Служба» на панели слева.
- В диалоге нажмите «Открыть настройки». macOS откроет «Конфиденциальность и безопасность → Полный доступ к диску».
- Вернитесь в SyncThemAll и нажмите «Скопировать путь» — в буфер попадёт расположение программы службы.
- В «Системных настройках» нажмите + под списком. Откроется окно выбора файла.
- Нажмите ⌘ + Shift + G, вставьте путь, нажмите Return и затем «Открыть».
- Убедитесь, что переключатель напротив добавленной записи включён.
- Вернитесь в 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 или дело в чём-то другом.