/proc/pid/root/ - symbolic link to root directory
Contents
Description
/proc/pid/root/
UNIX and Linux support the idea of a per-process root of the filesystem, set by the chroot(2)
system call. This file is a symbolic link that points to the process's root directory, and
behaves in the same way as exe, and fd/*.
Note however that this file is not merely a symbolic link. It provides the same view of the
filesystem (including namespaces and the set of per-process mounts) as the process itself. An
example illustrates this point. In one terminal, we start a shell in new user and mount
namespaces, and in that shell we create some new mounts:
$ PS1='sh1#'unshare-Urnm
sh1# mount-ttmpfstmpfs/etc # Mount empty tmpfs at /etc
sh1# mount--bind/usr/dev # Mount /usr at /dev
sh1# echo$$
27123
In a second terminal window, in the initial mount namespace, we look at the contents of the
corresponding mounts in the initial and new namespaces:
$ PS1='sh2#'sudosh
sh2# ls/etc|wc-l # In initial NS
309
sh2# ls/proc/27123/root/etc|wc-l # /etc in other NS
0 # The empty tmpfs dir
sh2# ls/dev|wc-l # In initial NS
205
sh2# ls/proc/27123/root/dev|wc-l # /dev in other NS
11 # Actually bind
# mounted to /usr
sh2# ls/usr|wc-l # /usr in initial NS
11
In a multithreaded process, the contents of the /proc/pid/root symbolic link are not available if
the main thread has already terminated (typically by calling pthread_exit(3)).
Permission to dereference or read (readlink(2)) this symbolic link is governed by a ptrace access
mode PTRACE_MODE_READ_FSCREDS check; see ptrace(2).
Name
/proc/pid/root/ - symbolic link to root directory
See Also
proc(5)
Linux man-pages 6.9.1 2024-05-02 proc_pid_root(5)
