← Documents Documentation/admin-guide/namespaces/compatibility-list.rst GitHub 원문 ↗

Linux 6.18.37 · Administration / Namespaces

Namespaces compatibility list

Task들이 일부 namespace를 공유하고 다른 namespace에서는 분리될 때 알려진 IPC·PID ID와 UID 격리 문제를 행렬로 설명합니다.

Source pathDocumentation/admin-guide/namespaces/compatibility-list.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

행렬 핵심

compatibility-list.rst:1-43

이 행렬은 공유 namespace를 열에, 분리 namespace를 행에 놓고 조합별 알려진 문제를 표시합니다.

표시의미
Matrix 열Task들이 공유하는 namespace
Matrix 행Task들이 서로 다르게 사용하는 namespace
표시 1IPC/PID ID를 namespace 밖으로 노출할 때의 충돌 위험
표시 2서로 다른 user namespace의 동일 UID가 VFS/IPC에서 분리되지 않는 문제

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 =============================
2 Namespaces compatibility list
3 =============================
4
5 This document contains the information about the problems user
6 may have when creating tasks living in different namespaces.
7
8 Here's the summary. This matrix shows the known problems, that
9 occur when tasks share some namespace (the columns) while living
10 in different other namespaces (the rows):
11
12 ==== === === === === ==== ===
13 - UTS IPC VFS PID User Net
14 ==== === === === === ==== ===
15 UTS X
16 IPC X 1
17 VFS X
18 PID 1 1 X
19 User 2 2 X
20 Net X
21 ==== === === === === ==== ===
22
23 1. Both the IPC and the PID namespaces provide IDs to address
24 object inside the kernel. E.g. semaphore with IPCID or
25 process group with pid.
26
27 In both cases, tasks shouldn't try exposing this ID to some
28 other task living in a different namespace via a shared filesystem
29 or IPC shmem/message. The fact is that this ID is only valid
30 within the namespace it was obtained in and may refer to some
31 other object in another namespace.
32
33 2. Intentionally, two equal user IDs in different user namespaces
34 should not be equal from the VFS point of view. In other
35 words, user 10 in one user namespace shouldn't have the same
36 access permissions to files, belonging to user 10 in another
37 namespace.
38
39 The same is true for the IPC namespaces being shared - two users
40 from different user namespaces should not access the same IPC objects
41 even having equal UIDs.
42
43 But currently this is not so.
44

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

호환성 행렬 읽기

1-10

이 문서는 서로 다른 namespace에 사는 task를 만들 때 사용자가 겪을 수 있는 문제를 정리합니다. 행렬의 열은 task들이 공유하는 namespace이고, 행은 같은 task들이 서로 다르게 사용하는 namespace입니다.

알려진 문제 행렬

11-22
분리 \ 공유UTSIPCVFSPIDUserNet
UTSX
IPCX1
VFSX
PID11X
User22X
NetX

`X`는 같은 종류의 namespace 자체 조합이며, `1`과 `2`는 아래 설명의 알려진 문제를 가리킵니다.

문제 1: IPC·PID identifier 노출

23-32

IPC namespace와 PID namespace는 각각 kernel object를 가리키는 ID를 제공합니다. 예를 들어 semaphore는 IPCID로, process group은 pid로 주소를 지정합니다.

두 경우 모두 task는 자신이 얻은 ID를 shared filesystem이나 IPC shared memory/message를 통해 다른 namespace의 task에 노출하면 안 됩니다. 그 ID는 획득한 namespace 안에서만 유효하며 다른 namespace에서는 전혀 다른 object를 가리킬 수 있습니다.

문제 2: User namespace UID 격리

33-43

의도상 서로 다른 user namespace의 같은 user ID는 VFS 관점에서 같아서는 안 됩니다. 한 user namespace의 user 10이 다른 user namespace의 user 10 소유 파일에 같은 access permission을 가져서는 안 됩니다.

IPC namespace를 공유할 때도 마찬가지입니다. 서로 다른 user namespace의 두 사용자는 UID가 같더라도 같은 IPC object에 접근해서는 안 됩니다. 그러나 이 원문이 설명하는 현재 동작은 아직 그렇게 격리되지 않습니다.