Re: [PATCH RFC 4/7] fs: support FD_FAILFS_ROOT in fchroot()
From: Christian Brauner <brauner@kernel.org>
Date: 2026-07-23 13:01:21
Also in:
linux-doc, linux-fsdevel, lkml
On Thu, Jul 23, 2026 at 05:49:06AM -0700, Andy Lutomirski wrote:
On Thu, Jul 23, 2026 at 4:37 AM Christian Brauner [off-list ref] wrote:quoted
Once entered, failfs is a throw-away-the-key moment. The task is considered chrooted so it cannot create user namespaces to regain CAP_SYS_CHROOT. chroot()/fchroot() back out require CAP_SYS_CHROOT.I kind of alluded to this earlier, but I don't think we should promise this. In particular, I still think we should eventually allow a non-chrooted process with no_new_privs to chroot to any valid directory, and I think we should consider changing the definition of current_chrooted() such that failfs-as-root would cause it to return false. I'm also not sure why it's useful -- if I want to throw away
I had considered that but introducing this change alongside this series felt too spicy for me.
the key to accessing the normal contents of my mountns without changing my mountns, I need to chroot somewhere (like failfs) *and* I need to somehow prevent myself from getting an fd or a magic link back to the ordinary mountns contents. If I somehow get such an fd, preventing my from fchrooting to it doesn't seem to accomplish anything, since I could traverse the fd with openat, etc just as easily, or even fchdir to it and use relative paths.
I think I generally agree with you. My main concern here is mostly about changing very long-standing behavior here and making failfs special here feels like it could easily misused.
My understanding of the exact workings of the mount tree is possibly not good enough to specify the semantics I think are correct quite exactly, but I think a decent approximation is that a task should be considered to be not chrooted if its root is at the top of its mount tree or is not in a mount tree at all.
If we could altering this definition from the patchset I would be in favor of it. I'm curious what your take is though.