proc_pid_root(5) File Formats Manual proc_pid_root(5)

/proc/pid/root/ - dowiązanie symboliczne do katalogu głównego

/proc/pid/root/
UNIX i Linux wspierają pomysł określonego dla każdego procesu osobno katalogu głównego systemu plików, ustawianego przez wywołanie systemowe chroot(2). Plik ten wskazuje na katalog główny systemu plików i zachowuje się w ten sam sposób jak exe, fd/*, itp.
Proszę jednak zauważyć, że nie jest to jedynie dowiązanie symboliczne. Zapewniany jest taki sam widok na system plików (w tym przestrzenie nazw i zestawy montowań na proces) jak przez sam proces. Oto przykład, który to ilustruje. W terminalu, uruchamiamy powłokę w nowych przestrzeniach nazw: użytkownika i montowania i w tej powłoce tworzymy nowe montowania:

$ PS1='sh1# ' unshare -Urnm
sh1# mount -t tmpfs tmpfs /etc  # Mont. pustego tmpfs w /etc
sh1# mount --bind /usr /dev     # Montowanie /usr w /dev
sh1# echo $$
27123

W drugim oknie terminala, w pierwotnej przestrzeni nazw montowań, sprawdzamy zawartość odpowiednich montowań w pierwotnych i nowych przestrzeniach nazw:

$ PS1='sh2# ' sudo sh
sh2# ls /etc | wc -l                  # W pierwotnej PN
309
sh2# ls /proc/27123/root/etc | wc -l  # /etc w innej PN
0                                     # Pusty katalog tmpfs
sh2# ls /dev | wc -l                  # W pierwotnej PN
205
sh2# ls /proc/27123/root/dev | wc -l  # /dev w innej PN
11                                    # W rzeczywist. zamont.
                                      # z podpięciem w /usr
sh2# ls /usr | wc -l                  # /usr w pierwotnej PN
11

W procesie wielowątkowym zawartość dowiązania symbolicznego /proc/pid/root nie jest dostępna, jeżeli wątek główny już się zakończył (zazwyczaj przez wywołanie pthread_exit(3)).
Uprawnienie do rozwiązania lub odczytu (readlink(2)) tego dowiązania symbolicznego, zależy od sprawdzenia trybu dostępu PTRACE_MODE_READ_FSCREDS ptrace; zob. ptrace(2).

proc(5)

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.

2 maja 2024 r. Linux man-pages 6.8