Puncte:0

De ce volumul Docker poate fi scris în lume dacă este setat la /tmp?

drapel in

Pentru context:

docker --version
    Versiunea Docker 20.10.7, versiunea 20.10.7-0ubuntu5~20.04.2

testul 1: volumul este /volumul meu

Aici este fișierul meu Docker

DIN alpin: cel mai recent
UTILIZATOR 1000:1000
VOLUME /volumul meu

și comenzile build + run:

docker build -t myimage .
docker run --rm -it imaginea mea

apoi, odata in recipient:

/ $ whoami
    whoami: uid necunoscut 1000
/ $ ls -ld /myvolume/
    drwxr-xr-x 2 root root 4096 8 martie 09:22 /myvolume/
/ $ atingere /myvolume/test
    atingeți: /myvolume/test: Permisiune refuzată

Până acum, nu este o surpriză că utilizatorul cu UID 1000 nu poate scrie /volumul meu.

testul 2: volumul este /tmp

Fișierul meu Docker

DIN alpin: cel mai recent
UTILIZATOR 1000:1000
VOLUME /tmp

(aceeași comenzi de build + run), iar în container:

/ $ whoami
    whoami: uid necunoscut 1000
/ $ ls -ld /tmp
    drwxrwxrwt 2 rădăcină rădăcină 4096 24 noiembrie 09:20 /tmp
/ $ atingeți /tmp/test
/ $ ls -l /tmp
    total 0
    -rw-r--r-- 1 1000 1000 0 Mar 8 09:23 test

Acum volumul s-a schimbat la /tmp, utilizatorul cu UID 1000 poate scrie în el.

Știu /tmp este de obicei inscriptibil în lume în GNU/Linux, dar aici, acest lucru pare „magic” (ceea ce este bine doar când Harry Potter este prin preajmă) și mă întreb dacă:

a) Îmi lipsește ceva despre modul în care funcționează Docker și volume (vă rugăm să mă consultați la documentația/tutorialele corespunzătoare)

b) este o coincidență din cauza configurării mele / lipsește ceva pentru a fi explicit și a nu mai baza pe valorile implicite

c) este o caracteristică nedocumentată care se poate modifica oricând fără notificare

d) este o caracteristică despre care nu am reușit să găsesc documentație și mă pot baza în siguranță pe faptul că atunci când un volum este atașat la /tmp, este întotdeauna scris în lume

Puncte:0
drapel cn

Acea „Magie” este așa-numita (și bine documentată)”Sticky Bit".

Httqm avatar
drapel in
Mi-ai ratat punctul meu de vedere (sau nu mi-am pus întrebarea suficient de clar): știu despre /tmp și permisiunile sale. Întrebarea mea este de ce (și cum) un volum primește aceste permisiuni atunci când este asociat cu /tmp, în timp ce nu este în altă parte.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.