Podman에 0600 권한이 있는 파일 마운트

Podman에 0600 권한이 있는 파일 마운트

에 파일을 설치하는 데 문제가 있습니다 podman. 내 파일 권한은 이지만 0600컨테이너를 사용할 수 없습니다. 해당 --privileged옵션이나 볼륨 확산 옵션을 사용하면 z작동합니다. 하지만 내 질문은 다음 옵션 중 어떤 것을 사용해야 합니까? 아니면 다른 방법이 있을 수도 있겠네요...

XY 문제를 피하기 위해 이 사례를 설명하겠습니다. certbotDNS Cloudflare를 사용하여 인증서를 생성하고 싶습니다 . 저는 Centos 8을 사용하고 있으므로 docker/podman을 통해 수행해야 합니다. Cerbot에는 Cloudflare의 키가 필요하므로 ~/.secrets/clodflare경로 에서 cloudflare.ini파일을 생성하고 이를 컨테이너에 설치하려고 합니다.

답변1

요즘 제가 배운 교훈 중 일부를 공유해 보겠습니다. 나는 전문가가 아닙니다. 나는 당신이 무엇을 해야 하는지 제안할 수는 없지만, --privilegedpodman 을 사용하고 실행할 때 어떤 일이 일어나는지 설명하려고 노력할 수 있습니다 :z. 어쩌면 당신은 이미 이것을 알고 있을 것입니다.

나는 당신이 podman루트 없이, podman -vsudo podman -v. 또한 ~/.secrets/clodflare귀하가 소유하고 있으며 UID는 1000.

귀하의 경우에는 기존 Unix 권한( 0600또는 -rw-------)과 SELinux( container_file_t, user_home_t:, fusefs_t등)의 두 가지 권한 문제가 있습니다.

  • UNIX 권한

    • 컨테이너 내에서 파일/폴더는 다음 root과 같습니다.
    • 컨테이너의 프로세스가 에 의해 실행되는 경우 root호스트에서는 사용자가 실행합니다. 따라서 rw-해당 폴더/파일에 대한 권한이 있습니다 . 나는 이것이 당신의 경우라고 생각합니다. --privileged도 와는 아무 관련이 없습니다 :z.

    • 컨테이너의 프로세스가 다른 사용자(예: UID )에 의해 실행되는 경우 호스트 시스템에서는 UID (기본적으로 의 설정에 따라 ) 1234를 사용하는 사용자에 의해 실행됩니다 . 따라서 해당 파일에 대해서만 권한이 있습니다. 컨테이너 내(또는 호스트) 내 에서 소유권을 변경하려면 예를 들어 또는 를 실행할 수 있습니다 . 그러나 나는 이것이 당신에게 적용되지 않는다고 생각합니다.101233/etc/subid---1234101233podman unshare chown -R 1234:1234 <path>sudo chown -R 101234:101234 <path>

    • 호스트에서 파일이 귀하의 소유가 아닌 경우 컨테이너에서는 의 설정에 따라 다른 사람의 소유가 됩니다 /etc/subid.

    • Google을 검색하면 이 주제에 대한 자세한 정보를 찾을 수 있습니다 podman namespace.

  • SELinux

    • SELinux 지원 호스트에는 SELinux 분리 문제가 여전히 존재합니다.
    • 를 사용하여 --privilegedSELinux 분리 등을 비활성화할 수 있습니다 . 그러나 파일/폴더의 레이블을 다시 지정하지는 않습니다. Podman을 실행할 때마다 다음과 같이 실행되어야 합니다 podman -v <host-path>:<container-path> --previleged <image>.
    • 을 추가하면 :zPodman이 파일/폴더의 레이블을 다시 지정하도록 허용할 수 있습니다. 넌 이것만 하면 돼한 번. ls -Z파일/폴더 목록을 통해 전후 차이점을 확인할 수 있습니다 ls -Zd. 파일이나 폴더의 레이블이 제대로 다시 지정되면 다음 번에는 , podman -v <host-path>:<container-path> <image>없이 실행할 수 있습니다 .:z--privileged
    • 이 문제는 제가 이해하기에는 너무 복잡하기 때문에 더 자세히 설명할 수 없습니다. 에 대한 설명이 podman run있는 매뉴얼 페이지가 도움이 됩니다.--privileged-v-security-opt

관련 정보