dwww Home | Manual pages | Find package

proc_pid_root(5)              File Formats Manual              proc_pid_root(5)

NAME
       /proc/pid/root/ - symbolic link to root directory

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 ex-
              ample 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 -t tmpfs tmpfs /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# ' sudo sh
                  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).

SEE ALSO
       proc(5)

Linux man-pages 6.9.1              2024-05-02                  proc_pid_root(5)

Generated by dwww version 1.16 on Tue Dec 16 14:08:58 CET 2025.