macOS 서비스의 파일 접근
macOS에서 SyncThemAll을 백그라운드 서비스로 실행하면, 분명히 내 것인 폴더 — 서류, 데스크탑, 다운로드, iCloud Drive, 외장 디스크 — 에 대해 "Permission denied"라고 알릴 수 있습니다.
고장 난 것도, 설정을 잘못한 것도 아닙니다. 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단계의 스위치가 정말 켜져 있는지, 그리고 SyncThemAll 앱 자체가 아니라 3단계의 파일을 추가했는지 확인하세요. 아래에서 설명합니다.
SyncThemAll 앱을 그냥 추가하면 안 되는 이유
서비스는 자체 식별 정보를 가진 별개의 프로그램이고, macOS는 이런 권한을 프로그램별로 관리하기 때문입니다. 앱에 준 접근 권한은 서비스로 넘어가지 않으며, 그 반대도 마찬가지입니다. 3단계에서 복사하는 경로는 애플리케이션 패키지 안쪽, 서비스가 실제로 실행하는 프로그램을 가리킵니다.
SyncThemAll.app/Contents/Resources/engine/syncthemall
Finder는 보통 애플리케이션 패키지의 내부를 감춥니다. 5단계에서 ⌘ + Shift + G로 경로에 곧장 가는 이유입니다. 파일을 마우스로 목록에 끌어다 놓는 편이 편하다면, SyncThemAll 대화상자에서 경로 복사 대신 Finder에서 보기를 사용하세요. 해당 파일이 선택된 상태로 폴더가 열립니다.
접근을 허용하면 무엇이 달라지나
서비스가 동기화 대상 폴더를 포함해 사용자의 폴더를 읽고 쓸 수 있게 됩니다. 미리 알아 둘 점이 두 가지 있습니다.
서비스가 만든 파일은 사용자가 아니라 시스템의 것입니다. 서비스가 '서류' 폴더에 파일을 내려받은 뒤 Finder에서 그 파일을 삭제하거나 이름을 바꾸려 하면 macOS가 암호를 묻습니다. 정상입니다. 시스템 수준 프로그램이 만든 파일이기 때문입니다. 같은 파일을 SyncThemAll 안에서 삭제할 때는 암호를 묻지 않습니다.
권한은 바로 그 프로그램에만 붙습니다. SyncThemAll을 다른 폴더로 옮기거나 프로그램이 교체되는 방식으로 다시 설치하면 권한을 새로 줘야 할 수 있습니다. 일반적인 업데이트에서는 권한이 유지됩니다.
나중에 접근을 취소하려면
'시스템 설정 → 개인정보 보호 및 보안 → 전체 디스크 접근 권한'을 열고 항목을 선택한 뒤 스위치를 끄거나 − 버튼으로 삭제합니다. 서비스는 계속 실행되며, 개인 폴더만 보지 못하게 됩니다. SyncThemAll에서 서비스 자체를 제거한다면 이 항목도 삭제하세요. 더는 가리킬 대상이 없기 때문입니다.
여전히 문제가 발생하나요?
서비스를 다시 시작해도 안내가 그대로이거나, 보호 목록에 없는 폴더에서 접근 오류가 난다면 문의해 주세요. 폴더 경로와 서비스 대화상자에 표시된 내용을 함께 알려 주시면, macOS가 막고 있는지 다른 문제인지 바로 알 수 있습니다.