user namespaces(7)
user_namespaces(7) — Linux Manual Page
Namn
user_namespaces - översikt av Linux användarnamnrymder
Beskrivning
För en översikt över namnrymder, se namespaces(7).
Användarnamnrymder isolerar säkerhetsrelaterade identifierare och attribut, särskilt användar-ID:n och grupp-ID:n (se credentials(7)), rotkatalogen, nycklar (se keyrings(7)) och kapabiliteter (se capabilities(7)). En process kan ha olika användar- och grupp-ID:n inuti och utanför en användarnamnrymd. Till exempel kan en process ha ett vanligt icke-privilegierat användar-ID utanför en användarnamnrymd, men samtidigt ha användar-ID 0 inuti namnrymden. Med andra ord har processen fulla privilegier för operationer inom namnrymden, men saknar privilegier utanför den.
Nästlade namnrymder och medlemskap
Användarnamnrymder kan vara nästlade; varje användarnamnrymd (förutom den initiala "rot"-namnrymden) har en förälder och kan ha noll eller fler barn. Föräldern är namnrymden till processen som skapar den nya namnrymden via unshare(2) eller clone(2) med flaggan CLONE_NEWUSER.
Kärnan begränsar (sedan Linux 3.11) antalet nivåer av nästlade användarnamnrymder till 32. Om denna gräns överskrids returneras felet EUSERS.
Varje process är medlem i exakt en användarnamnrymd. Processer skapade med fork(2) eller clone(2) utan CLONE_NEWUSER är medlemmar i samma namnrymd som sin förälder. En enkeltrådad process kan gå med i en annan användarnamnrymd med setns(2) om den har CAP_SYS_ADMIN i den namnrymden.
Kapabiliteter
En process som skapas med clone(2) och flaggan CLONE_NEWUSER börjar med en komplett uppsättning kapabiliteter i den nya användarnamnrymden. Detsamma gäller för en process som använder unshare(2) eller setns(2) för att gå med i en befintlig användarnamnrymd.
När en användarnamnrymd skapas registrerar kärnan det effektiva användar-ID:t för den skapande processen som "ägare" av namnrymden. Processer i föräldernamnrymden som matchar ägarens användar-ID har alla kapabiliteter i namnrymden.
Användar- och grupp-ID-mappningar: uid_map och gid_map
När en användarnamnrymd skapas är den tom på användar- och grupp-ID-mappningar. Dessa definieras via filerna /proc/pid/uid_map och /proc/pid/gid_map. Varje rad i dessa filer definierar en 1-till-1-mappning mellan två namnrymder. Formatet är:
ID-i-namnrymd ID-utanför-namnrymd längd
Processer i olika användarnamnrymder kan se olika mappningar för samma process-ID.
Effekt av kapabiliteter
Kapabiliteter inom en användarnamnrymd tillåter operationer endast på resurser som styrs av den namnrymden. För operationer som påverkar resurser utanför namnrymden, som att ändra systemtid, krävs privilegier i den initiala användarnamnrymden.
Interaktion mellan användarnamnrymder och andra namnrymdstyper
När en icke-användarnamnrymd skapas, ägs den av den användarnamnrymd som den skapande processen tillhörde. Privilegierade operationer på resurser i icke-användarnamnrymder kräver nödvändiga kapabiliteter i den associerade användarnamnrymden.
Omapplade användar- och grupp-ID:n
I vissa fall, som när en användarnamnrymd ännu inte har definierade mappningar, visas omapplade ID:n som ett "overflow"-ID, oftast 65534. Detta förhindrar förväxling i systemanrop som returnerar användar- eller grupp-ID:n.
Exempel
För exempel, se clone(2) och pid_namespaces(7).
Se även
Colophon
Denna sida är en del av Linux-manualprojektet. Mer information finns på [1]. Rapporter om fel eller förslag till förbättringar kan skickas till man-pages@man7.org.
Sidslut
Orginalhemsidan på Engelska :https://man7.org/linux/man-pages/man7/user_namespaces.7.html
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Datorhjälp som har sponsrat Linux.se med webbhotell.