From: Jan Kara <jack@suse.cz>
To: Aleksa Sarai <cyphar@cyphar.com>
Cc: Miklos Szeredi <miklos@szeredi.hu>,
Christoph Hellwig <hch@infradead.org>,
Christian Brauner <brauner@kernel.org>, Jan Kara <jack@suse.cz>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Chuck Lever <chuck.lever@oracle.com>,
Jeff Layton <jlayton@kernel.org>,
Amir Goldstein <amir73il@gmail.com>,
Alexander Aring <alex.aring@gmail.com>,
linux-fsdevel@vger.kernel.org, linux-nfs@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-api@vger.kernel.org
Subject: Re: [PATCH RFC v2] fhandle: expose u64 mount id to name_to_handle_at(2)
Date: Mon, 3 Jun 2024 12:30:23 +0200 [thread overview]
Message-ID: <20240603103023.dh2npfl76wbmyvsx@quack3> (raw)
In-Reply-To: <20240529.013815-fishy.value.nervous.brutes-FzobWXrzoo2@cyphar.com>
On Sat 01-06-24 01:12:31, Aleksa Sarai wrote:
> On 2024-05-28, Miklos Szeredi <miklos@szeredi.hu> wrote:
> > On Tue, 28 May 2024 at 15:24, Christoph Hellwig <hch@infradead.org> wrote:
> > >
> > > On Tue, May 28, 2024 at 02:04:16PM +0200, Christian Brauner wrote:
> > > > Can you please explain how opening an fd based on a handle returned from
> > > > name_to_handle_at() and not using a mount file descriptor for
> > > > open_by_handle_at() would work?
> > >
> > > Same as NFS file handles:
> > >
> > > name_to_handle_at returns a handle that includes a file system
> > > identifier.
> > >
> > > open_by_handle_at looks up the superblock based on that identifier.
> >
> > The open file needs a specific mount, holding the superblock is not sufficient.
>
> Not to mention that providing a mount fd is what allows for extensions
> like Christian's proposed method of allowing restricted forms of
> open_by_handle_at() to be used by unprivileged users.
>
> If file handles really are going to end up being the "correct" mechanism
> of referencing inodes by userspace, then future API designs really need
> to stop assuming that the user is capable(CAP_DAC_READ_SEARCH). Being
> able to open any file in any superblock the kernel knows about
> (presumably using a kernel-internal mount if we are getting rid of the
> mount fd) is also capable(CAP_SYS_ADMIN) territory.
Well, but this is already handled - name_to_handle_at() with AT_HANDLE_FID
is completely unpriviledged operation. Unpriviledged userspace can use
fhandle for comparisons with other file handles but that's all it is good
for (similarly as inode number you get from statx(2) but does not have the
problem with inode number uniqueness on btrfs, bcachefs, etc.). I don't
expect unpriviledged userspace to be able to more with the fhandle it got.
Honza
--
Jan Kara <jack@suse.com>
SUSE Labs, CR
next prev parent reply other threads:[~2024-06-03 10:30 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-23 20:57 [PATCH RFC v2] fhandle: expose u64 mount id to name_to_handle_at(2) Aleksa Sarai
2024-05-24 4:58 ` Amir Goldstein
2024-05-26 9:25 ` Christoph Hellwig
2024-05-26 19:01 ` Aleksa Sarai
2024-05-27 11:47 ` Christoph Hellwig
2024-05-27 12:29 ` Christian Brauner
2024-05-27 13:17 ` Christian Brauner
2024-05-27 15:47 ` Trond Myklebust
2024-05-28 7:05 ` Christian Brauner
2024-05-27 16:18 ` Christoph Hellwig
2024-05-27 13:34 ` Jan Kara
2024-05-27 16:24 ` Christoph Hellwig
2024-05-28 8:20 ` Christian Brauner
2024-05-28 8:28 ` Christoph Hellwig
2024-05-28 9:17 ` Christian Brauner
2024-05-28 10:55 ` Christoph Hellwig
2024-05-28 12:04 ` Christian Brauner
2024-05-28 13:22 ` Christoph Hellwig
2024-05-28 13:28 ` Miklos Szeredi
2024-05-29 6:34 ` Christoph Hellwig
2024-06-01 8:12 ` Aleksa Sarai
2024-06-03 10:30 ` Jan Kara [this message]
2024-06-04 5:22 ` Christoph Hellwig
2024-05-29 7:40 ` Christian Brauner
2024-05-31 8:14 ` Christoph Hellwig
2024-05-31 10:28 ` Christian Brauner
2024-05-26 22:32 ` Trond Myklebust
2024-05-27 11:49 ` hch
2024-05-27 15:38 ` Trond Myklebust
2024-05-27 16:29 ` hch
2024-05-28 7:12 ` Christian Brauner
2024-05-28 7:15 ` hch
2024-05-28 10:11 ` Jan Kara
2024-05-28 10:56 ` hch
2024-05-28 23:25 ` Dave Chinner
2024-05-29 6:24 ` hch
2024-05-29 7:23 ` Amir Goldstein
2024-05-27 12:22 ` Christian Brauner
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=20240603103023.dh2npfl76wbmyvsx@quack3 \
--to=jack@suse.cz \
--cc=alex.aring@gmail.com \
--cc=amir73il@gmail.com \
--cc=brauner@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=cyphar@cyphar.com \
--cc=hch@infradead.org \
--cc=jlayton@kernel.org \
--cc=linux-api@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=viro@zeniv.linux.org.uk \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).