Re: [PATCH RESEND v2 16/18] fuse: Support fuse filesystems outside of init_user_ns

From: Miklos Szeredi
Date: Wed Mar 09 2016 - 10:51:55 EST


On Wed, Mar 9, 2016 at 4:25 PM, Seth Forshee <seth.forshee@xxxxxxxxxxxxx> wrote:
> On Wed, Mar 09, 2016 at 03:48:22PM +0100, Miklos Szeredi wrote:

>> Can't we use current_cred()->uid/gid? Or fsuid/fsgid maybe?
>
> That would be a departure from the current behavior in the !allow_other
> case for unprivileged users. Since those mounts are done by an suid
> helper all of those ids would be root in the userns, wouldn't they?

Well, actually this is what the helper does:

sprintf(d, "fd=%i,rootmode=%o,user_id=%u,group_id=%u",
fd, rootmode, getuid(), getgid());

So it just uses the current uid/gid. Apparently no reason to do this
in userland, we could just as well set these in the kernel. Except
for possible backward compatibility problems for things not using the
helper.

BUT if the mount is unprivileged or it's a userns mount, or anything
previously not possible, then we are not constrained by the backward
compatibility issues, and can go with the saner solution.

Does that not make sense?

>> When we have true unprivileged mounts, the user_id/group_id options
>> become redundant anyway and we can just use the current credentials.
>
> True, but we don't yet have that.

What's missing?

Thanks,
Miklos