5

Is there a way to inspect the files and directories of another mount namespace?

setns(2) syscall appears to be able to move a thread to another namespace, but if this functionality is not already built in to a program (a shell, fileserver, ..), it appears that executing a new process is required. And since the target mount namespace may not contain the required binary, this is a problem.

Edit:
What I am looking for is a "user-friendly" way to access the files in the namespace. I can imagine there being, for example, a way to mount the namespace somewhere on the host system. But since I don't know what's possible, I'm asking.

0

1 Answer 1

7

You'll need to define "user friendly" if you want a guaranteed satisfactory answer, but depending on your needs, /proc/<PID>/root to get the entire filesystem hierarchy as seen by a specific process, and /proc/<PID>/mounts (and /proc/<PID>/mountinfo) for what's mounted where, might get you where you need to go. If you only have a file descriptor for a namespace, you're in a far less pleasant position, because I'm not aware of any way you can go from file descriptor to a PID that's already in the namespace, but if that's where you're coming from, you left the "user friendly" reservation a long time ago, and contortions are to be expected.

2
  • 2
    That /proc/<PID>/root/ was the exact thing I was looking for, thank you! ❤️
    – Gima
    Oct 18, 2017 at 22:31
  • 1
    The /proc/<PID>/root/ is what I needed as well. I also want to mention that I initially thought it would not work, since it appears to just be a broken symlink. But if you actually try to access it, it works!
    – likebike
    Sep 2, 2022 at 17:47

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .