Linux 커널의 "네임 스페이스 지원"기능이 정확히 무엇을 의미하는지 궁금합니다. 커널 3.11.1 (현재 가장 안정적인 커널)을 사용하고 있습니다.
비활성화하기로 결정한 경우 시스템에 변경 사항이 있습니까?
그리고 누군가가 네임 스페이스를 사용하기로 결정한 경우 NAMESPACES=Y
, 커널에서 컴파일하기에 충분 합니까, 아니면 사용자 공간 도구도 필요합니까?
Linux 커널의 "네임 스페이스 지원"기능이 정확히 무엇을 의미하는지 궁금합니다. 커널 3.11.1 (현재 가장 안정적인 커널)을 사용하고 있습니다.
비활성화하기로 결정한 경우 시스템에 변경 사항이 있습니까?
그리고 누군가가 네임 스페이스를 사용하기로 결정한 경우 NAMESPACES=Y
, 커널에서 컴파일하기에 충분 합니까, 아니면 사용자 공간 도구도 필요합니까?
답변:
간단히 말해서 네임 스페이스는 더 큰 Linux 시스템 내에 가상 Linux 시스템을 구축하는 방법을 제공합니다. 이는 권한이없는 프로세스로 실행되는 가상 시스템을 실행하는 것과 다릅니다. 가상 시스템은 호스트에서 단일 프로세스로 표시되는 반면 네임 스페이스 내에서 실행되는 프로세스는 여전히 호스트 시스템에서 실행됩니다.
더 큰 시스템에서 실행되는 가상 시스템을 컨테이너 라고합니다 . 컨테이너의 개념은 컨테이너 내부에서 실행되는 프로세스가 시스템의 유일한 프로세스라고 믿습니다. 특히, 컨테이너 내부의 루트 사용자에게는 컨테이너 외부의 루트 권한이 없습니다 (최근 충분한 버전의 커널에서만 적용됨).
네임 스페이스는 한 번에 하나의 기능을 가상화합니다. 네임 스페이스 유형의 몇 가지 예는 다음과 같습니다.
네임 스페이스는 커널을 사용하여 네임 스페이스를 격리시킵니다. 이 작업은 매우 복잡하므로 보안 버그가 여전히있을 수 있습니다. 보안 버그의 위험은이 기능을 사용하지 않는 주된 이유입니다. 임베디드 장치를 위해 작은 커널을 만들 때이를 활성화하지 않는 또 다른 이유가 있습니다. 일반적인 서버 나 워크 스테이션에 설치하는 범용 커널에서 다른 성숙한 커널 기능과 마찬가지로 네임 스페이스를 활성화해야합니다.
네임 스페이스를 사용하는 애플리케이션은 여전히 적습니다. 몇 가지가 있습니다 :
자세한 내용 은 Michael Kerrisk의 LWN 기사 시리즈 를 참조하십시오.
Linux 커널 네임 스페이스는 시스템 자원에 대한 액세스와 관련하여 다른 프로세스 그룹을 분리하는 데 사용되는 개념입니다. 예를 들어 두 개의 다른 PID 네임 스페이스에는 동일한 PID를 갖지만 완전히 다른 프로세스 이미지를 가진 프로세스가 포함될 수 있습니다. OS 수준 가상화에서 단일 커널이 동시에 여러 운영 체제를 실행하는 경우에 사용됩니다. 커널을 공유하기 때문에 모두 Linux 기반이어야하지만 배포 및 버전이 다를 수 있습니다. 예를 들어 LXC를 참조하십시오 .
systemd는 컨테이너 기능에 네임 스페이스를 사용할 수 있으므로 예를 들어 systemd 기반 시스템에서이를 비활성화 할 수 있습니다 . 따라서 사용중인 배포 및 시스템으로 수행하려는 작업에 따라 달라집니다.
거의 모든 커널 기능과 마찬가지로 일종의 사용자 공간 프로그램이 필요합니다. 특별한 파일을 통해 커널과 대화를 했더라도 (가능하지는 않지만) 특수 도구를 사용하는 것이 훨씬 좋습니다. 친숙한 API를 제공하십시오.
SELinux (MLS 또는 Strict) 사용 시스템에서 네임 스페이스 사용의 예를 제공합니다. 네임 스페이스는 일반적으로 각 사용자의 개인 /tmp
및 / 또는 /home
디렉토리 를 만드는 데 사용됩니다 . 이러한 디렉토리는 사용자, 동일한 레이블을 가진 사용자, 커널 및 특권 액세스 권한을 가진 사용자에게만 표시됩니다. 네임 스페이스가있는 /tmp
디렉토리는 사용자의 SELinux-MLS 레이블과 일치하도록 SELinux-MLS로 레이블이 지정됩니다. 이 시나리오에서 /tmp
사용자에게 표시 되는 디렉토리는 실제로 /tmp
( /var/user-tmp
) 이외의 위치에 마운트 될 수 있습니다 . 그러나 사용자 /tmp
는 사용자의 활동으로 인해 생성 된 파일 만 볼 수 있습니다. 사용자는 /tmp
다른 사용자의 제품인 파일을 볼 수 없습니다 .