From: Keno Fischer <keno-9DCaDmOhoh+8M3too/+dENBPR1lH4CV8@public.gmane.org>
To: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Cc: linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: [PATCH] mount.2: Add EINVAL error condition when MS_BINDing MNT_LOCKED submounts
Date: Mon, 27 Nov 2017 17:44:17 -0500 [thread overview]
Message-ID: <20171127224417.GA5122@juliacomputing.com> (raw)
When the user creates an unpriviledged mount namespace, the linux
kernel sets the MNT_LOCKED flag [1] on any submounts to prevent
such mounts from being unmounted inside the mount namespace. Such
an unmount would reveal the filesystem tree behind the mount, which
is not otherwise possible from an unpriviledge vantage point.
Attempting to unmount such a mount will fail with EINVAL. However,
less obvious implication is that attempting a bind mount without
MS_REC, where the tree being bound contains locked sub-mounts,
will also fail with EINVAL, because, without MS_REC, such submounts
are effectively being unmounted.
Cursory googling shows several instances of people running into this
problem, so I felt it advantageous to have it documented in the man
page.
[1] https://github.com/torvalds/linux/blob/4fbd8d194f06c8a3fd2af1ce560ddb31f7ec8323/fs/namespace.c#L1110-L1113
---
man2/mount.2 | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/man2/mount.2 b/man2/mount.2
index 87cb1a9..8d2a347 100644
--- a/man2/mount.2
+++ b/man2/mount.2
@@ -650,6 +650,14 @@ or
.BR EINVAL
An attempt was made to bind mount an unbindable mount.
.TP
+.BR EINVAL
+In an unpriviledged mount namespace, a bind operation
+.RB ( MS_BIND )
+was attempted without specifying
+.RB ( MS_REC ),
+which would have revealed the filesytem tree underneath one of
+the submounts of the directory being bound.
+.TP
.B ELOOP
Too many links encountered during pathname resolution.
.TP
--
2.8.1
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next reply other threads:[~2017-11-27 22:44 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-27 22:44 Keno Fischer [this message]
[not found] ` <20171127224417.GA5122-9DCaDmOhoh+8M3too/+dENBPR1lH4CV8@public.gmane.org>
2017-12-04 19:55 ` [PATCH] mount.2: Add EINVAL error condition when MS_BINDing MNT_LOCKED submounts Michael Kerrisk (man-pages)
[not found] ` <b35b0de4-ef4c-702e-b2d0-a78608fe745b-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-12-04 20:01 ` Keno Fischer
2017-12-19 13:53 ` Michael Kerrisk (man-pages)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171127224417.GA5122@juliacomputing.com \
--to=keno-9dcadmohoh+8m3too/+denbpr1lh4cv8@public.gmane.org \
--cc=linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.