Podman 볼륨 마운트: 언제 :z 또는 :Z 접미사를 사용합니까?

Podman 볼륨 마운트: 언제 :z 또는 :Z 접미사를 사용합니까?

포드맨 매뉴얼 페이지볼륨 마운트/바인딩 설명:

SELinux와 같은 레이블 지정 시스템에서는 컨테이너에 마운트된 볼륨의 콘텐츠에 적절한 레이블을 배치해야 합니다. 레이블이 없으면 보안 시스템으로 인해 컨테이너 내에서 실행되는 프로세스가 콘텐츠를 사용하지 못할 수 있습니다. 기본적으로 Podman은 운영 체제에서 설정된 레이블을 변경하지 않습니다.

컨테이너 컨텍스트에서 레이블을 변경하려면 두 접미사 중 하나를 추가하면 됩니다. :지또는:지볼륨 마운트에. 이러한 접미사는 Podman에게 공유 볼륨의 파일 객체 레이블을 다시 지정하도록 지시합니다. 이것옵션은 Podman에게 두 컨테이너 간에 볼륨 내용을 공유하도록 지시합니다. 따라서 Podman은 공유 콘텐츠 태그를 사용하여 콘텐츠에 태그를 지정합니다. 공유 볼륨 레이블을 사용하면 모든 컨테이너가 콘텐츠를 읽고 쓸 수 있습니다. 이것옵션은 Podman에게 비공개, 비공유 태그를 사용하여 콘텐츠에 태그를 지정하도록 지시합니다.

이것문제 해결 페이지그러나 거의 동일한 단어로 동일한 내용을 설명합니다.

이제 저는 Podman과 SELinux를 처음 접했고 실제로 무엇을 언제 사용해야 하는지 궁금합니다. 권한 오류가 발생하면 아마도 SELinux로 인해 발생한 것일 수 있으므로 두 스위치 중 하나를 사용하면 문제가 해결될 것입니다. 그런데 두 옵션(소문자 z와 대문자 Z)의 차이점은 무엇입니까?

그것이 말하는 차이점은 다음과 같습니다.

  • :z공유 콘텐츠 라벨 만들기
  • :Z비공개, 비공유 라벨 만들기

이것은 많은 새로운 단어를 소개합니다:

  • 공유 및 공유되지 않음(이것은 무엇을 의미합니까?)
  • ??? vs 비공개(이것이 나에게 무엇을 의미하는지 다시 한번 말하지만)
  • 또한 한 옵션은 "콘텐츠 태그"이고 다른 옵션은 "태그"를 의미한다고 나와 있습니다. 이 두 용어 사이에 차이점이 있나요, 아니면 같은가요?

그러면 이 문맥에서 이 단어들은 무엇을 의미합니까? 마지막 질문: 언제 무엇을 사용해야 합니까?

답변1

"공유"는 여러 컨테이너가 볼륨을 공유할 수 있음을 의미하고 "비공유"는 그렇지 않음을 의미합니다. 더 자세히 설명하면 :z각 컨테이너 내의 볼륨에 적절한 레이블( )을 지정하면 container_file_t특정 볼륨을 여러 컨테이너 내에 병렬로 마운트할 수 있으며 해당 볼륨이 마운트된 실행 중인 모든 컨테이너에서 액세스할 수 있습니다. 호스트 또는 실행 중인 컨테이너에 대한 모든 변경 사항은 실행 중인 모든 컨테이너에 표시됩니다.

또한 "비공개"는 컨테이너 내에서 사용되는 태그가 해당 컨테이너에만 적용된다는 의미입니다. 파일 시스템 수준에는 추가 계층이 없으므로 이는 호스트 관점에서도 콘텐츠가 비공개임을 의미합니다. 동일한 마운트를 가진 컨테이너는 이에 대한 액세스를 공유할 수 없습니다. 적어도 Podman의 경우 마지막 컨테이너가 승리하고 볼륨에 액세스할 수 있는 유일한 컨테이너입니다. 여기에서 "비공개"의 반의어는 "공유"인 것 같습니다. 이는 문서에 반대 용어("공유 공유 태그")가 없는 이유를 설명합니다.

"콘텐츠 태그"와 "레이블" 사이에 어떤 의미가 있는지 확실하지 않습니다. 단, 해당 컨테이너에서 생성된 모든 콘텐츠가 호스트를 포함하여 그에 따라 태그가 지정된다는 의미가 아니라면 다음과 같은 태그가 콘텐츠와 함께 표시됩니다. 파일: 태그 container_file_t.

바라보다Podman의 이 기사에서는 차이점을 더 자세히 보여줍니다..Docker에도 동일한 차이점이 있습니다..

답변2

"심층적인 보안에는 관심이 없습니다. 단지 작동하도록 만드는 것뿐입니다.": 소문자z

프로덕션 환경: Capital 을 고려 Z하지만 볼륨이 연결된 마지막 컨테이너만 액세스할 수 있습니다.

참고: 이것은 쉼표로 구분된 목록이므로 예를 들어 와 결합하려는 경우 가 ro됩니다 :ro,z.

관련 정보