두 개의 권한이 없는 컨테이너가 있고 그 사이에 Unix 소켓을 공유하고 싶습니다. 각 컨테이너에는 호스트에 별도의 subuid 및 subguid 매핑이 있는 자체 사용자가 있습니다.
컨테이너에 그룹을 생성하고 이를 호스트의 그룹에 매핑해 보았습니다. 그러나 이것은 작동하지 않습니다. 컨테이너를 서로 노출시키지 않고 관련된 사용자 수와 잠재적인 보안 허점을 가능한 한 작게 유지하기 위해 추가 사용자를 생성하고 싶지 않습니다.
답변1
Unix 소켓은 IP 소켓과 똑같이 동작하지만 주소는 파일 경로입니다. 컨테이너가 해야 할 일은 소켓 주소 = 파일 경로를 확인하는 것뿐입니다. UID 권한은 확인되지 않습니다. 아직 시도하지 않았지만(이유는 나중에 설명하겠습니다) 공유 마운트 네임스페이스이면 충분할 것입니다. 그렇지 않다면 아마도 IPC일까요?
아마도 명명된 파이프를 의미하는 것일까요? 명명된 파이프에 대한 UID 액세스를 확인하지만 파일 액세스 제어 목록을 사용하여 매핑된 사용자의 액세스를 허용할 수 있습니다.
mkfifo abc; setfacl -m u:12345:rw abc; setfacl -m u:23456:rw abc
Unix 소켓을 사용하는 것이 타당하지 않은 이유는 IP 소켓보다 빠르거나 안전하지 않기 때문입니다. 그렇다면 진짜 질문은 왜 통신을 위해 유닉스 소켓이 필요한가 하는 것입니다.