각 컨테이너 프로세스의 실제 숫자 ID를 필요한 모든 공유의 소유자, 그룹, ACL 및 마운트 모드에 매핑하여 여러 NAS 공유에서 컨테이너 사용자 ID를 구성하세요.
하나의 UID가 모든 데이터셋을 소유하도록 강제하지 말고, 통합 전략으로 chmod 777을 사용하지 마세요. 미디어 서버는 사진에 읽기 전용으로 접근해야 할 수 있고, 다운로더는 수집 공유에 읽기/쓰기 권한이 필요할 수 있으며, 백업 컨테이너는 별도의 보호된 대상이 필요할 수 있습니다. 기본 책임에는 소유권을 사용하고, 공유 접근에는 그룹이나 ACL을 사용하세요.
권한을 변경하기 전에 세 가지 ID를 기록하세요
각 서비스에 대해 NAS 측 소유자 UID/GID, 컨테이너 내부 프로세스의 숫자 사용자 및 그룹 ID, 그리고 PUID/PGID 같은 이미지별 ID 규칙을 기록하세요. 사용자 이름은 같아 보여도 숫자 ID가 다를 수 있으므로 이 세 값이 서로 혼동되는 경우가 많습니다.
PUID와 PGID는 Docker 설정이 아닙니다라는 최신 설명에서도 이러한 구분을 명확히 합니다. PUID와 PGID는 일부 컨테이너 이미지가 해석하는 변수일 뿐, 모든 Docker에 적용되는 설정은 아닙니다.
컨테이너 내부에서 id를 실행하여 실행 중인 프로세스를 확인하고, 호스트의 파일은 숫자 소유권으로 검사하세요. 이미지가 해당 방식을 지원하지 않는 한 Compose에 작성한 값이 실제로 프로세스를 제어한다고 가정하지 마세요.
서비스 간 데이터에는 기본 소유자와 공유 그룹을 사용하세요
하나의 애플리케이션만 사용하는 공유에는 전용 소유자를 지정할 수 있습니다. 여러 서비스가 파일을 쓰는 공유는 일반적으로 해당 서비스에 필요한 작업만 허용하는 공유 그룹이나 ACL을 계획적으로 사용하는 편이 관리하기 쉽습니다.
숫자 UID 및 GID 소유권에 대한 실용적인 설명에서는 바인드 마운트된 파일이 호스트의 숫자 소유권을 따르는 이유와, 해당 ID를 일치시키거나 의도적으로 매핑해야 root 소유로 생성되는 출력과 권한 오류를 방지할 수 있는 이유를 설명합니다.
예를 들어 미디어 작업 흐름에서는 다운로더가 준비 파일을 소유하고, 다운로더와 정리 담당 서비스가 모두 media 그룹에 속하도록 할 수 있습니다. 디렉터리 상속, 기본 ACL 또는 적절한 umask 동작을 설정하여 새 파일에도 공유 접근 권한이 자동으로 유지되도록 하세요.
각 공유에는 컨테이너에 필요한 마운트 권한만 부여하세요
ID는 여러 계층 중 하나일 뿐입니다. UID를 올바르게 매핑해도 읽기 전용 바인드 마운트를 통해 파일을 쓸 수는 없으며, 파일 시스템 권한이 광범위한 컨테이너도 라이브러리를 읽기 전용으로 마운트하여 안전하게 제한할 수 있습니다.
2026년의 런타임 사용자 재정의 설명에서는 바인드 마운트가 호스트 소유권을 사용하는 방식과 런타임 user: 설정으로 프로세스 ID를 일치시키는 방법을 설명하는 동시에, 사용자를 강제로 지정하면 시작 로직이 다른 권한을 전제로 하는 이미지가 작동하지 않을 수 있다고 경고합니다.
각 호스트 경로, 컨테이너 경로, 마운트 모드, 필요한 작업 및 담당 서비스를 문서화하세요. 서비스가 소비만 하는 라이브러리에는 읽기 전용 마운트를 사용하고, 실제로 필요한 가장 작은 경로에만 쓰기 권한을 부여하세요.
여러 NAS ACL 모델을 계획적으로 처리하세요
SMB/NFSv4 ACL, POSIX ACL, NFS ID 매핑 및 단순 Unix 모드 비트는 서로 다른 접근 권한을 보여줄 수 있습니다. 하나의 NAS 사용자로 SMB를 통해 정상적으로 작동하는 공유도 호스트에서 다른 숫자 ID를 사용하는 컨테이너 프로세스의 접근은 거부할 수 있습니다.
관련 ZimaSpace 문서인 NAS 권한 변경에서는 대상 ACL 상속, SMB ID, 컨테이너 UID/GID 및 umask를 서로 별개의 계층으로 진단해야 하는 이유를 설명합니다.
여러 프로토콜이 하나의 데이터셋에 접근한다면 하나의 권한 모델을 선택하고 문서화하세요. NAS GUI에서 ACL을 변경하면서 셸의 chmod 및 chown 명령을 반복적으로 섞어 사용하면 다음 파일이 이전 파일과 다르게 동작할 수 있습니다.
재귀적으로 적용하기 전에 모든 작성자에서 파일 생성을 테스트하세요
의도한 소유권과 ACL을 적용한 임시 테스트 디렉터리를 만드세요. 각 컨테이너에서 서비스에 필요한 작업만 수행하도록 목록 조회, 읽기, 생성, 이름 변경 및 삭제를 테스트하세요. 그런 다음 NAS에서 새 파일의 숫자 소유자, 그룹, 모드 및 상속된 ACL을 확인하세요.
기존 파일은 작동하지만 새로 생성된 파일이 다른 서비스에서 실패한다면 그룹 멤버십, 기본 ACL, umask 또는 애플리케이션별 파일 모드 등 생성 경로를 수정하세요. 기존 데이터를 재귀적으로 복구해도 같은 불일치가 내일 다시 발생하는 것을 막을 수는 없습니다.
모든 작성자가 높은 권한 없이 다음에 필요한 서비스에서 사용할 수 있는 파일을 생성하는 것을 확인한 후에만 운영 환경에 적용하세요. 깔끔한 UID/GID 설계는 모든 컨테이너가 우연히 같은 사용자로 실행되기 때문이 아니라, 매핑이 문서화되어 반복적으로 적용할 수 있기 때문에 복구할 수 있습니다.
지원 및 팁
더 읽어보기

Docker 재시작 정책을 데이터베이스, 워커 및 웹 앱에 맞추는 방법
서비스 수명 주기와 종료 의미에 맞게 재시작 정책을 설정하세요. 상태 점검 및 준비 상태 점검과 함께 사용하고, 종속성 오류를 숨기기 위해 재시작 루프를 사용하지...

선택적 홈 서버 서비스를 위한 Docker Compose 프로필 설정 방법
필수 서비스는 프로필 없이 유지하고 선택적 도구에는 프로필을 사용하세요. 프로필이 전체 스택을 시작한다고 가정하지 말고 직접 대상과 종속성을 테스트하세요.

NAS 앱 메타데이터의 클라우드 동기화 제외 항목 최적화 방법
복원 역할에 따라 NAS 앱 메타데이터를 분류하세요. 캐시와 임시 상태는 제외하고, 이식 가능한 구성은 의도적으로 보호하며, 운영 중인 데이터베이스는 일반 동기화에서 제외하세요.

