Mount Namespace
Basiese Inligting
'n Monteer-naamruimte is 'n Linux-kernelkenmerk wat isolasie van die lêerstelsel-monteerpunte wat deur 'n groep prosesse gesien word, bied. Elke monteer-naamruimte het sy eie stel lêerstelsel-monteerpunte, en veranderings aan die monteerpunte in een naamruimte beïnvloed nie ander naamruimtes nie. Dit beteken dat prosesse wat in verskillende monteer-naamruimtes loop, verskillende sienings van die lêerstelsel-hierargie kan hê.
Monteer-naamruimtes is veral nuttig in konteinerisering, waar elke konteiner sy eie lêerstelsel en konfigurasie moet hê, geïsoleer van ander konteinere en die gasheerstelsel.
Hoe dit werk:
Wanneer 'n nuwe monteer-naamruimte geskep word, word dit geïnisialiseer met 'n kopie van die monteerpunte van sy ouer-naamruimte. Dit beteken dat, by skepping, die nuwe naamruimte dieselfde siening van die lêerstelsel deel as sy ouer. Tog sal enige volgende veranderinge aan die monteerpunte binne die naamruimte nie die ouer of ander naamruimtes beïnvloed nie.
Wanneer 'n proses 'n monteerpunt binne sy naamruimte wysig, soos die monteer of ontmonteer van 'n lêerstelsel, is die verandering plaaslik in daardie naamruimte en beïnvloed dit nie ander naamruimtes nie. Dit maak dit moontlik dat elke naamruimte sy eie onafhanklike lêerstelsel-hierargie het.
Prosesse kan tussen naamruimtes beweeg deur die
setns()
-sisteemaanroep te gebruik, of nuwe naamruimtes skep deur dieunshare()
- ofclone()
-sisteemaanroep met dieCLONE_NEWNS
-vlag te gebruik. Wanneer 'n proses na 'n nuwe naamruimte beweeg of een skep, sal dit begin om die monteerpunte wat met daardie naamruimte geassosieer word, te gebruik.Lêerbeskrywers en inodes word oor naamruimtes gedeel, wat beteken dat as 'n proses in een naamruimte 'n oop lêerbeskrywer het wat na 'n lêer wys, kan dit daardie lêerbeskrywer aan 'n proses in 'n ander naamruimte oordra, en beide prosesse sal toegang tot dieselfde lêer hê. Die lêer se pad mag egter nie dieselfde wees in beide naamruimtes as gevolg van verskille in monteerpunte nie.
Laboratorium:
Skep verskillende Naamruimtes
CLI
Deur 'n nuwe instansie van die /proc
-lêersisteem te monteer as jy die parameter --mount-proc
gebruik, verseker jy dat die nuwe berg-namespace 'n akkurate en geïsoleerde siening van die prosesinligting spesifiek vir daardie namespace het.
Docker
Kyk watter namespace jou proses in is
Om te bepaal in watter namespace jou proses tans is, kan jy die volgende opdrag gebruik:
Hierdie opdrag sal die mountinfo
-lêer van jou huidige proses ($$
) lees en die reëls filter wat die woord "ns" bevat. Die uitset sal die namespace-identifiseerders vir jou proses toon.
Vind alle Monteer-ruimtes
```bash nsenter -m TARGET_PID --pid /bin/bash ``` Verder kan jy slegs **toegang verkry tot 'n ander proses-namespace as jy root is**. En jy kan **nie** **toegang verkry** tot 'n ander namespace **sonder 'n beskrywer** wat daarna verwys nie (soos `/proc/self/ns/mnt`).
Omdat nuwe bergings slegs binne die namespace toeganklik is, is dit moontlik dat 'n namespace sensitiewe inligting bevat wat slegs daarvandaan toeganklik is.
Monteer iets
Verwysings
Last updated