Re: [PATCH v2] cifs: reinstate original behavior again for forceuid/forcegid

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I do not think that forceuid is meaningful without uid=, because the admin
does not intend to override uid for files on the share. So specifying forceuid
without uid= shows "ignoring forceuid mount option specified with no
uid= option",
and forceuid is disabled (=noforceuid is enabled). Then any uid provided by
the server should be used for the files if the server provides it.

Takayuki Nagata

2023年4月7日(金) 19:14 ronnie sahlberg <ronniesahlberg@xxxxxxxxx>:
>
> Looks good.
> The question arises, are there any situations where forceuid is
> meaningful without uid= argument and what would it mean?
>
> On Fri, 7 Apr 2023 at 15:09, Takayuki Nagata <tnagata@xxxxxxxxxx> wrote:
> >
> > forceuid/forcegid should be enabled by default when uid=/gid= options are
> > specified, but commit 24e0a1eff9e2 ("cifs: switch to new mount api")
> > changed the behavior. Due to the change, a mounted share does not show
> > intentional uid/gid for files and directories even though uid=/gid=
> > options are specified since forceuid/forcegid are not enabled.
> >
> > This patch reinstates original behavior that overrides uid/gid with
> > specified uid/gid by the options.
> >
> > Fixes: 24e0a1eff9e2 ("cifs: switch to new mount api")
> > Signed-off-by: Takayuki Nagata <tnagata@xxxxxxxxxx>
> > Acked-by: Ronnie Sahlberg <lsahlber@xxxxxxxxxx>
> > Acked-by: Tom Talpey <tom@xxxxxxxxxx>
> > Signed-off-by: Steve French <stfrench@xxxxxxxxxxxxx>
> > ---
> > V1 -> V2: Revised commit message to clarify "what breaks".
> >
> >  fs/cifs/fs_context.c | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/fs/cifs/fs_context.c b/fs/cifs/fs_context.c
> > index ace11a1a7c8a..6f7c5ca3764f 100644
> > --- a/fs/cifs/fs_context.c
> > +++ b/fs/cifs/fs_context.c
> > @@ -972,6 +972,7 @@ static int smb3_fs_context_parse_param(struct fs_context *fc,
> >                         goto cifs_parse_mount_err;
> >                 ctx->linux_uid = uid;
> >                 ctx->uid_specified = true;
> > +               ctx->override_uid = 1;
> >                 break;
> >         case Opt_cruid:
> >                 uid = make_kuid(current_user_ns(), result.uint_32);
> > @@ -1000,6 +1001,7 @@ static int smb3_fs_context_parse_param(struct fs_context *fc,
> >                         goto cifs_parse_mount_err;
> >                 ctx->linux_gid = gid;
> >                 ctx->gid_specified = true;
> > +               ctx->override_gid = 1;
> >                 break;
> >         case Opt_port:
> >                 ctx->port = result.uint_32;
> > --
> > 2.40.0
> >
>





[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux