권한 오류의 진짜 원인은 경로 혼동이었습니다
ZimaOS 사용자가 tailnet 주소를 신뢰할 수 있는 도메인에 추가하기 위해 Nextcloud의 config.php를 편집해야 했습니다. chown이나 usermod 같은 명령이 도움이 되지 않았던 이유는 첫 번째로 확인해야 할 것이 파일 소유자가 아니라 해당 명령이 사용 중인 파일 시스템 네임스페이스였기 때문입니다.
사용자가 Nextcloud 컨테이너의 마운트를 확인한 후 이 문제에 대한 해결책을 찾았습니다. 동일한 파일이 ZimaOS 호스트에서는 한 경로에, 컨테이너 내부에서는 다른 경로에 나타났습니다. 호스트에서 컨테이너 경로를 입력했을 때 Nextcloud 가이드에 나온 경로와 똑같아 보여도 정상적으로 작동하지 않습니다.
권한을 변경하기 전에 컨테이너 마운트를 확인하세요
먼저 실행 중인 Nextcloud 컨테이너를 확인합니다.
docker ps --format "table {{.Names}}\t{{.Image}}"
그런 다음 <nextcloud-container-name>을 실제 컨테이너 이름으로 바꿔 마운트를 확인합니다.
docker inspect <nextcloud-container-name> --format '{{range .Mounts}}{{println .Source "->" .Destination}}{{end}}'
이 경우 출력 결과는 다음과 같았습니다.
/DATA/AppData/nextcloud/var/www/html -> /var/www/html
왼쪽은 호스트 경로이고 오른쪽은 컨테이너 내부에서 보이는 경로입니다. 이 매핑을 보면 관련 없는 디렉터리의 권한을 변경하거나 호스트에서 컨테이너 경로로 이동해도 문제가 해결되지 않은 이유를 알 수 있습니다.
ZimaOS에서 편집할 때는 호스트 경로를 사용하세요
ZimaOS 호스트 셸에서 사용자는 다음 경로에서 파일을 찾았습니다.
/DATA/AppData/nextcloud/var/www/html/config/config.php
따라서 호스트에서 파일을 편집하는 명령은 다음과 같습니다.
vim /DATA/AppData/nextcloud/var/www/html/config/config.php
편집하기 전에 파일과 상위 디렉터리를 모두 확인하는 것이 권장되었습니다.
ls -l /DATA/AppData/nextcloud/var/www/html/config/config.php
ls -ld /DATA/AppData/nextcloud/var/www/html/config
확인된 파일 권한은 640이었고 소유자는 www-data:www-data였습니다. 이 정보도 중요하지만, 최종적으로 문제를 일으킨 원인은 여전히 경로의 기준이었습니다. 실제 바인드 마운트 위치를 확인하기 전에는 임의로 소유권을 변경하지 말라는 안내가 있었습니다.
컨테이너에 들어간 후에는 컨테이너 경로를 사용하세요
또 다른 방법은 실행 중인 컨테이너에 들어가 그 안에서 파일을 편집하는 것입니다.
docker exec -it nextcloud sh
vi /var/www/html/config/config.php
컨테이너 내부에서는 /var/www/html/config/config.php가 올바른 경로입니다. 반면 호스트에서 같은 경로를 사용하면 마운트된 Nextcloud 디렉터리가 아니라 호스트 자체의 루트 파일 시스템을 가리킵니다.
Docker 설정 경고는 별개의 문제였습니다
docker inspect와 docker exec 모두 /DATA/.docker/config.json을 열 수 없다는 경고를 출력했습니다. 답변에서는 이를 Nextcloud 파일 접근 문제의 원인이 아닌 Docker CLI 설정 경고로 설명했습니다. 호스트 경로와 컨테이너 경로의 차이를 이해한 후 사용자는 작업을 계속할 수 있었습니다.
FAQ
소유권을 변경해도 Nextcloud 설정 파일 문제가 해결되지 않은 이유는 무엇인가요?
실제 바인드 마운트의 소스 경로를 먼저 확인하지 않은 상태에서 명령을 실행했기 때문입니다. 잘못된 호스트 디렉터리의 권한을 변경해도 마운트된 Nextcloud 데이터 경로 안의 파일에는 영향을 주지 않습니다.
config.php는 호스트에서 편집해야 하나요, 아니면 컨테이너 내부에서 편집해야 하나요?
둘 다 가능합니다. 호스트에서는 전체 /DATA/AppData/... 소스 경로를 사용하고, 컨테이너에 먼저 들어간 경우에는 /var/www/html/... 경로를 사용하세요. 두 경로 기준을 서로 섞어 사용하지 마세요.
