linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/1] fuse: acl: Send file mode updates using SETATTR
@ 2021-03-16 16:01 Vivek Goyal
  2021-03-16 16:01 ` [PATCH 1/1] fuse: send " Vivek Goyal
  2021-03-17 14:29 ` [PATCH 0/1] fuse: acl: Send " Luis Henriques
  0 siblings, 2 replies; 9+ messages in thread
From: Vivek Goyal @ 2021-03-16 16:01 UTC (permalink / raw)
  To: linux-fsdevel, virtio-fs, miklos
  Cc: lhenriques, dgilbert, seth.forshee, Vivek Goyal

Hi Miklos,

Please find attached a patch to fix the SGID clearing issue upon 
ACL change. 

Luis reported that currently fstests generic/375 fails on virtiofs. And
reason being that we don't clear SGID when it should be.

Setting ACL can lead to file mode change. And this in-turn also can
lead to clearing SGID bit if.

- None of caller's groups match file owner group.
AND
- Caller does not have CAP_FSETID.

Current implementation relies on server updating the mode. But file
server does not have enough information to do so. 

Initially I thought of sending CAP_FSETID information to server but
then I realized, it is just one of the pieces. What about all the
groups caller is a member of. If this has to work correctly, then
all the information will have to be sent to virtiofsd somehow. Just
sending CAP_FSETID information required adding V2 of fuse_setxattr_in
because we don't have any space for sending extra information.

https://github.com/rhvgoyal/linux/commit/681cf5bdbba9c965c3dbd4337c16e9b17f27debe

Also this approach will not work with idmapped mounts because server
does not have information about idmapped mappings.

So I started to look at the approach of sending file mode updates
using SETATTR. As filesystems like 9pfs and ceph are doing. This
seems simpler approach. Though it has its issues too.

- File mode update and setxattr(system.posix_acl_access) are not atomic.

None of the approaches seem very clean to me. But sending SETATTR
explicitly seems to be lesser of two evils to me at this point of time.
Hence I am proposing this patch. 

I have run fstests acl tests and they pass. (./check -g acl).

Corresponding virtiofsd patches are here.

https://github.com/rhvgoyal/qemu/commits/acl-sgid-setattr

What do you think.

Vivek Goyal (1):
  fuse: Add a mode where fuse client sends mode changes on ACL change

 fs/fuse/acl.c             | 54 ++++++++++++++++++++++++++++++++++++---
 fs/fuse/dir.c             | 11 ++++----
 fs/fuse/fuse_i.h          |  9 ++++++-
 fs/fuse/inode.c           |  4 ++-
 include/uapi/linux/fuse.h |  5 ++++
 5 files changed, 71 insertions(+), 12 deletions(-)

-- 
2.25.4


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-03-17 22:58 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-03-16 16:01 [PATCH 0/1] fuse: acl: Send file mode updates using SETATTR Vivek Goyal
2021-03-16 16:01 ` [PATCH 1/1] fuse: send " Vivek Goyal
2021-03-17 15:43   ` Miklos Szeredi
2021-03-17 17:01     ` Vivek Goyal
2021-03-17 19:25       ` Miklos Szeredi
2021-03-17 22:57         ` Vivek Goyal
2021-03-17 14:29 ` [PATCH 0/1] fuse: acl: Send " Luis Henriques
2021-03-17 15:18   ` Vivek Goyal
2021-03-17 15:35     ` Luis Henriques

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).