[linux-cifs-client] Re: No longer set S_ISVTX when mounted to Windows

Jeff Layton jlayton at redhat.com
Thu Nov 1 20:00:40 GMT 2007


On Thu, 1 Nov 2007 11:08:33 -0500
"Steve French" <smfrench at gmail.com> wrote:

> Not sure why the cifs code sets the S_ISVTX bit when mounted to
> Windows servers.  I think the intent was to turn off all of the high
> bits except that (S_ISGID) needed to indicate mandatory locking
> (mandatory locking is set by having S_ISGID on and group execute,
> S_IXGRP, off).  When reviewing the cifsacl code (to map
> CIFS/Windows/NTFS ACLs to mode bits I noticed that we were setting the
> sticky bit (S_ISVTX) on files (this does not happen when a user
> specifies a default mode on mount) and probably shouldn't.  Does
> anyone see any problem with turning this bit off in the default file
> mode when mounted to Windows?
> 
> diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
> index 19ee11f..380ee99 100644
> --- a/fs/cifs/connect.c
> +++ b/fs/cifs/connect.c
> @@ -793,7 +793,7 @@ cifs_parse_mount_options(char *options, const
> char *devname, vol->linux_gid = current->gid;
>         vol->dir_mode = S_IRWXUGO;
>         /* 2767 perms indicate mandatory locking support */
> -       vol->file_mode = S_IALLUGO & ~(S_ISUID | S_IXGRP);
> +       vol->file_mode = (S_IRWXUGO | S_ISGID) & (~S_IXGRP);
> 
>         /* vol->retry default is 0 (i.e. "soft" limited retry not
> hard retry) */ vol->rw = TRUE;
> 
> -- 
> Thanks,
> 
> Steve

ACK :-)

Looks pretty much like the patch I sent to the list on Oct 16. At the
time I think you emailed JRA to ask why we were setting the sticky bit
but I don't believe he ever replied.

AFAICT, the sticky bit on a regular file doesn't mean anything on
Linux. Having it set is harmless, but I could see problems if someone
were for instance, to tar up some files on a CIFS share and untar them
on an OS where it does have meaning.

-- 
Jeff Layton <jlayton at redhat.com>


More information about the linux-cifs-client mailing list