proc_pid_root(5) File Formats Manual proc_pid_root(5)

/proc/pid/root/ - legătură simbolică către directorul rădăcină

/proc/pid/root/
UNIX și Linux susțin ideea unei rădăcini a sistemului de fișiere pentru fiecare proces, stabilită prin apelul de sistem chroot(2). Acest fișier este o legătură simbolică care indică directorul rădăcină al procesului și se comportă în același mod ca exe și fd/*.
Rețineți totuși că acest fișier nu este doar o legătură simbolică. Acesta oferă aceeași vizualizare a sistemului de fișiere (inclusiv a spațiilor de nume și a setului de montări per-proces) ca și procesul în sine. Un exemplu ilustrează acest aspect. Într-un terminal, pornim un shell în spații de nume de utilizator și de montare noi, iar în acel shell creăm câteva montări noi:

$ PS1='sh1# ' unshare -Urnm;
sh1# mount -t tmpfs tmpfs /etc;  # Montează tmpfs gol la /etcn
sh1# mount --bind /usr /dev;     # Montează /usr la /dev
sh1# echo $$;
27123

Într-o a doua fereastră de terminal, în spațiul de nume de montare inițial, ne uităm la conținutul montărilor corespunzătoare din spațiul de nume inițial și cel nou:

$ PS1='sh2# ' sudo sh;
sh2# ls /etc | wc -l;                  # În spațiul-de-nume inițial
309
sh2# ls /proc/27123/root/etc | wc -l;  # /etc în alt spațiu-de-nume
0                                     # Directorul tmpfs gol
sh2# ls /dev | wc -l;                  # În spațiul-de-nume inițial
205
sh2# ls /proc/27123/root/dev | wc -l;  # /dev în alt spațiu-de-nume
11                                    # De fapt montat
                                      # bind la /usr
sh2# ls /usr | wc -l;                 # /usr în spațiul-de-nume inițial
11

Într-un proces cu mai multe fire de execuție, conținutul legăturii simbolice /proc/pid/root nu este disponibil dacă firul principal s-a terminat deja (de obicei prin apelarea pthread_exit(3)).
Permisiunea de a dereferenția sau citi (readlink(2)) această legătură simbolică este guvernată de o verificare a modului de acces «ptrace» PTRACE_MODE_READ_FSCREDS; a se vedea ptrace(2).

proc(5)

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

17 mai 2025 Pagini de manual de Linux 6.15