이 문제는 답답한 권한 문제로 시작했지만 결국 반복해서 적용할 수 있는 해결 방법으로 이어졌습니다. Syncthing은 Windows 피어와 통신할 수 있었고 기본 AppData 위치로는 동기화할 수 있었지만, 다음과 같은 마운트된 NAS 경로를 사용하려고 하면 /media/raid/NAS/Music 발생 권한 거부 및 폴더 경로가 없음 오류
2025년 8월, 한 커뮤니티 사용자가 자신에게 효과적이었던 방법을 공유했습니다. Custom Install로 Syncthing을 다시 설치하고, 실제 ZimaOS 사용자의 PUID/PGID를 사용하며, 적절한 동기화 루트를 선택하고, Syncthing이 자체 대상 폴더를 생성하도록 하는 방법입니다. 이후 두 명의 사용자가 이 방법이 효과가 있었다고 명시적으로 확인했습니다. 현재 IceWhale 공식 Syncthing 가이드에서도 사실상 동일한 설정을 안내합니다.
기존 Syncthing은 기본 AppData 경로에만 쓸 수 있었습니다
소스 사용자는 다음과 같은 오류를 겪을 수 있습니다.
/DATA/AppData/syncthing/config/Sync
원하는 하드 드라이브의 음악 경로를 사용할 수 없었습니다. Files, Jellyfin, Navidrome에서는 해당 경로에 액세스할 수 있었습니다. 이는 디스크 자체의 오류라기보다 컨테이너의 사용자 ID와 권한이 일치하지 않는 문제라는 강력한 증거입니다.
Syncthing을 루트로 실행하는 방법이 제안되었지만 현재 권장되는 해결 방법은 아닙니다
초기 커뮤니티 답변에서는 PUID/GUID 0을 사용하라고 제안했습니다. 파일 동기화 서비스를 루트로 실행하면 많은 권한 문제를 우회할 수 있지만, 컨테이너에 필요 이상으로 광범위한 쓰기 및 삭제 권한을 부여하게 됩니다.
현재 IceWhale 안내에서는 대신 실제 사용자의 ID를 사용할 것을 명시적으로 권장합니다.
Custom Install 사용
실제 ZimaOS 사용자의 PUID 및 PGID 찾기
현재 공식 안내에서는 다음 명령을 사용합니다.
id -u 사용자 이름
id -g 사용자 이름
다음으로 바꾸기 사용자 이름 동기화된 파일을 소유하고 관리해야 하는 ZimaOS 계정으로 로그인한 다음, 반환된 숫자 ID를 Syncthing 환경 변수에 복사하세요.
마운트된 디스크의 루트를 Syncthing 폴더로 사용하지 마세요
현재 IceWhale 문서에서는 마운트된 디스크의 루트나 Gallery/Media/Documents 같은 시스템 폴더를 Syncthing 폴더 경로로 직접 사용하지 말라고 안내합니다. 일반적으로 이렇게 하려면 루트 수준 권한이 필요하기 때문입니다.
대신 적절한 전용 하위 폴더를 생성하거나 사용하세요.
Syncthing이 대상 폴더를 생성하도록 하기
커뮤니티 해결 방법에서는 ZimaOS 파일 브라우저를 통해 대상 폴더를 미리 만들지 말라고 사용자에게 명확히 안내했습니다. 현재 공식 문서에서도 동일한 모범 사례를 다시 강조합니다. Syncthing에서 대상을 정의하고 Syncthing이 직접 생성하도록 하세요.
이 커뮤니티 해결 방법은 이제 공식 ZimaOS 문서에 반영되었습니다.
현재 ZimaOS Syncthing 설정을 사용하세요.
잘못된 ID로 인해 재설치가 필요할 수 있다고 안내하는 이유
처음 설치할 때 잘못된 사용자로 설정이나 폴더가 생성되면 나중에 값 하나만 변경해도 기존 소유권이 남을 수 있습니다. 따라서 현재 지침에서는 설치 전에 PUID/PGID를 주의 깊게 확인하도록 안내합니다.
중요한 장치/폴더 관계가 포함되어 있다면 AppData를 삭제하여 새로 설치하기 전에 Syncthing 설정을 백업하세요.
먼저 삭제해도 되는 작은 폴더로 테스트하세요
Syncthing을 대규모 음악 또는 문서 트리에 연결하기 전에 작은 테스트 폴더를 동기화하고, 양방향 동기화가 활성화되어 있다면 동작을 확인한 다음 NAS에서 소유권을 확인하고 운영 폴더를 추가하세요.
모든 권한 계층이 마침내 일치하기 때문에 문제가 해결됩니다
Syncthing이 파일을 정상적으로 생성하려면 네 가지 조건이 일치해야 합니다. ZimaOS 호스트 폴더가 존재하고 지정된 사용자/그룹이 해당 폴더에 쓸 수 있어야 하며, Docker가 해당 호스트 폴더를 컨테이너에 매핑해야 하고, Syncthing이 일치하는 PUID/PGID로 실행되어야 하며, Syncthing 내부에서 설정한 폴더 경로가 컨테이너 측 마운트 지점을 가리켜야 합니다. 어느 한 계층에서라도 불일치가 발생하면 동일한 “권한 거부” 증상처럼 나타날 수 있습니다.
마운트된 디스크의 루트를 기본 동기화 대상으로 사용하면 안 되는 이유
마운트된 디스크의 루트에는 시스템이 관리하는 디렉터리, 공유 메타데이터 또는 여러 서비스에서 사용하도록 설정된 권한이 포함된 경우가 많습니다. 동기화 엔진에 해당 위치에 대한 광범위한 쓰기 권한을 부여하면 실수로 인한 삭제나 잘못된 설정의 영향 범위가 커집니다. 전용 하위 폴더를 사용하면 소유권과 백업 정책을 훨씬 쉽게 관리할 수 있습니다.
양방향 동기화를 활성화하기 전에 Syncthing의 삭제 동작을 확인하세요
Syncthing은 폴더 모드에 따라 변경 사항을 전파하며, 송수신 설정에서는 삭제도 전파합니다. 대규모 음악 또는 문서 라이브러리에 연결하기 전에 임시 파일로 생성·이름 변경·삭제 동작을 테스트하고, 실수로 원격에서 삭제한 항목을 복구해야 한다면 Syncthing 버전 관리를 고려하세요.
ZimaOS Syncthing FAQ
이후 사용자들이 PUID/PGID 방식이 작동한다고 확인했나요?
예. 이후 출처에 참여한 사람 중 최소 두 명이 게시된 방법으로 문제가 해결되었다고 명시적으로 말했습니다.
디스크에 액세스하려면 Syncthing을 root로 실행해야 하나요?
현재 IceWhale 지침에서는 실제 ZimaOS 사용자의 PUID/PGID와 적절한 하위 폴더를 대신 사용하도록 권장합니다.
먼저 ZimaOS Files에서 대상 폴더를 생성해야 하나요?
현재 IceWhale 문서에서는 Syncthing이 대상 폴더를 직접 생성하도록 두라고 안내합니다.
