user namespaces(7)

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

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.