cgroup_namespaces(7) Miscellaneous Information Manual cgroup_namespaces(7) NAMN cgroup_namespaces -- oversikt over Linux cgroup-namnrymder BESKRIVNING For en oversikt over namnrymder, se namespaces(7). Cgroup-namnrymder virtualiserar vyn av en process cgroup:er (se cgroups(7)) som de syns via /proc/pid/cgroup och /proc/pid/mountinfo. Varje cgroup-namnrymd har sin egen uppsattning av cgroup-rotkataloger. Dessa rotkataloger ar baspunkterna for de relativa platserna som visas i motsvarande poster i filen /proc/pid/cgroup. Nar en process skapar en ny cgroup-namnrymd med clone(2) eller unshare(2) med flaggan CLONE_NEWCGROUP blir dess aktuella cgroup-kataloger cgroup-rotkataloger i den nya namnrymden. (Detta galler bade for cgroup version 1-hierarkierna och den unifierade hierarkin i cgroup version 2.) Nar man laser cgroup-medlemskapen for en "mal"-process fran /proc/pid/cgroup kommer sokvagsnamnet som visas i det tredje faltet av varje post att vara relativt den lasande processens rotkatalog for motsvarande cgroup-hierarki. Om cgroup-katalogen for malprocessen ligger utanfor rotkatalogen for den lasande processens cgroup-namnrymd kommer sokvagsnamnet visa ../-poster for varje anfaderniva i cgroup-hierarkin. Foljande skalsession demonstrerar effekten av att skapa en ny cgroup-namnrymd. Forst (som rot) i ett skal i den initiala cgroup-namnrymden skapar vi en barn-cgroup i hierarkin freezer, och lagger in en process i denna cgroup som vi kommer anvanda som en del av var demonstration nedan: # mkdir -p /sys/fs/cgroup/freezer/sub2; # sleep 10000 & # Skapa en process som lever ett tag [1] 20124 # echo 20124 > /sys/fs/cgroup/freezer/sub2/cgroup.procs; Sedan skapar vi en annan barn-cgroup i hierarkin freezer och lagger in skalet i denna cgroup: # mkdir -p /sys/fs/cgroup/freezer/sub; # echo $$ # Visa detta skals PID 30655 # echo 30655 > /sys/fs/cgroup/freezer/sub/cgroup.procs; # cat /proc/self/cgroup | grep freezer; 7:freezer:/sub Darefter anvander vi unshare(1) for att skapa en process som kor ett nytt skal i nya cgroup- och monteringsnamnrymder: # PS1='sh2# ' unshare -Cm bash; Fran det nya skalet som startades av unshare(1) inspekterar vi sedan filerna /proc/pid/cgroup for det nya skalet, en process som finns i den initiala cgroup-namnrymden (init, med PID 1) respektive processen i syskon-cgroup:en (sub2): sh2# cat /proc/self/cgroup | grep freezer; 7:freezer:/ sh2# cat /proc/1/cgroup | grep freezer; 7:freezer:/.. sh2# cat /proc/20124/cgroup | grep freezer; 7:freezer:/../sub2 Fran utdata fran det forsta kommandot ser vi att medlemskapet i cgroup:en freezer for det nya skalet (vilket finns i samma cgroup som det initiala skalet) visas definierat relativt rotkatalogen for cgroup:en freezer som etablerades nar den nya cgroup-namnrymden skapades. (I absoluta termer, det nya skalet finns i freezer-cgroup:en /sub, och rotkataloger i freezer-cgroup-hierarkin i den nya cgroup-namnrymden ar ocksa /sub. Alltsa, det nya skalets cgroup-medlemskap visas som '/'.) Dock, nar vi tittar i /proc/self/mountinfo ser vi foljande anomali: sh2# cat /proc/self/mountinfo | grep freezer; 155 145 0:32 /.. /sys/fs/cgroup/freezer Det fjarde faltet pa denna rad (/..) skulle visa katalogen i cgroup-filsystemet som utgor roten for denna montering. Eftersom enligt definitionen av cgroup-namnrymder processens aktuella cgroup-katalog for freezer blev dess rot-freezer-cgroup-katalog borde vi se '/' i detta falt. Problemet har ar att vi ser en monteringspost for cgroup-filsystemet som motsvarar den initiala cgroup-namnrymden (vars cgroup-filsystem verkligen ar rotat i foraldrakatalogen till sub). For att losa detta problem maste vi montera om freezer-cgroup-filsystemet fran det nya skalet (d.v.s., utfora monteringen fran en process som finns i den nya cgroup-namnrymden), varefter vi ser det forvantade resultatet: sh2# mount --make-rslave /; # Propagera inte monteringshandelser # till andra namnrymder sh2# umount /sys/fs/cgroup/freezer; sh2# mount -t cgroup -o freezer freezer /sys/fs/cgroup/freezer; sh2# cat /proc/self/mountinfo | grep freezer; 155 145 0:32 / /sys/fs/cgroup/freezer rw,relatime STANDARDER Linux. NOTERINGAR Anvandning av cgroup-namnrymder kraver en karna som ar konfigurerad med alternativet CONFIG_CGROUPS. Virtualiseringen som erbjuds av cgroup-namnrymder tjanar ett antal syften: o Det forhindrar att information lacker genom att en cgroup-katalogsokvag utanfor en behallare annars skulle vara synlig for processer i behallaren. Sadant lackage skulle, till exempel, kunna avsloja information om behallarramverket for program i behallare. o Det forenklar uppgifter sasom migrering av behallare. Virtualiseringen som erbjuds av cgroup-namnrymder gor att behallare kan isoleras fran kunskap om sokvagarna till anfader-cgroup:er. Utan sadan isolation skulle de fullstandiga cgroup-sokvagarna (som visas i /proc/self/cgroups) behova aterskapas pa malsystemet nar en behallare migreras; dessa sokvagsnamn skulle ocksa behova vara unika, sa att de inte skulle sta i konflikt med andra sokvagsnamn pa malsystemet. o Det mojliggor battre begransning av processer i behallare, for att det ar mojligt att montera behallarens cgroup-filsystem sa att behallarprocessen inte kan fa tillgang till kataloger for anfaders cgroup. Betank, till exempel, foljande scenario: o Vi har en cgroup-katalog, /cg/1, som ags av anvandar-ID 9000. o Vi har en process, X, som ocksa ags av anvandar-ID 9000, som har namnrymden under cgroup /cg/1/2 (d.v.s., X placerades i en ny cgroup-namnrymd via clone(2) eller unshare(2) med flagga CLONE_NEWCGROUP. I avsaknad av cgroup-namnrymder skulle, eftersom cgroup-katalogen /cg/1 ags (och ar skrivbar) av AID 9000 och processen X ocksa ags av anvandar-ID 9000, process X kunna andra innehallet i cgroup-filer (d.v.s., andra cgroup-installningar) inte bara i /cg/1/2 utan aven i anfader-cgroup-katalogen /cg/1. Att namnrymda processen X under cgroup-katalogen /cg/1/2, i kombination med lampliga monteringsoperationer av cgroup-filsystemet (som visas ovan), forhindrar den fran att andra filer i /cg/1, eftersom den inte ens kan se innehallet i den katalogen (eller i mer avlagsna cgroup-anfaderkataloger). Kombinerat med korrekt verkstallighet av hierarkiska begransningar forhindrar detta process X fran att fly fran begransningarna som laggs pa av anfader-cgroup:er. SE AVEN unshare(1), clone(2), setns(2), unshare(2), proc(5), cgroups(7), credentials(7), namespaces(7), user_namespaces(7) OVERSATTNING Den svenska oversattningen av denna manualsida skapades av Goran Uddeborg Denna oversattning ar fri dokumentation; las GNU General Public License Version 3 eller senare for upphovsrattsvillkor. Vi tar INGET ANSVAR. Om du hittar fel i oversattningen av denna manualsida, skicka ett mail till . Linux man-pages 6.18 8 februari 2026 cgroup_namespaces(7)