From 706955fa8d0e7f9c3662bffe2c38968986ccb31d Mon Sep 17 00:00:00 2001 From: jiefeng Date: Fri, 8 Mar 2024 14:28:59 +0800 Subject: [PATCH] feat/acl: fix umask in acl #4458 Signed-off-by: jiefeng --- go.mod | 2 +- go.sum | 4 ++-- pkg/fuse/fuse.go | 3 ++- pkg/fuse/fuse_darwin.go | 4 ++++ pkg/fuse/fuse_linux.go | 4 ++++ 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 8e5eca15fb01..6c5fb093759e 100644 --- a/go.mod +++ b/go.mod @@ -255,7 +255,7 @@ require ( replace github.com/minio/minio v0.0.0-20210206053228-97fe57bba92c => github.com/juicedata/minio v0.0.0-20231213085529-c243663574ba -replace github.com/hanwen/go-fuse/v2 v2.1.1-0.20210611132105-24a1dfe6b4f8 => github.com/juicedata/go-fuse/v2 v2.1.1-0.20230726081302-124dbfa991d7 +replace github.com/hanwen/go-fuse/v2 v2.1.1-0.20210611132105-24a1dfe6b4f8 => github.com/juicedata/go-fuse/v2 v2.1.1-0.20240202080323-002ef792942e replace github.com/dgrijalva/jwt-go v3.2.0+incompatible => github.com/golang-jwt/jwt v3.2.1+incompatible diff --git a/go.sum b/go.sum index c8ca53d478f3..12193292fea6 100644 --- a/go.sum +++ b/go.sum @@ -622,8 +622,8 @@ github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7 github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/juicedata/cli/v2 v2.19.4-0.20230605075551-9c9c5c0dce83 h1:RyHTka3jCnTaUqfRYjlwcQlr53aasmkvHEbYLXthqr8= github.com/juicedata/cli/v2 v2.19.4-0.20230605075551-9c9c5c0dce83/go.mod h1:1CNUng3PtjQMtRzJO4FMXBQvkGtuYRxxiR9xMa7jMwI= -github.com/juicedata/go-fuse/v2 v2.1.1-0.20230726081302-124dbfa991d7 h1:4evzoVz1/AZfk9tqxWdzVYTMl2dC7VjEJHfaSFDrKS8= -github.com/juicedata/go-fuse/v2 v2.1.1-0.20230726081302-124dbfa991d7/go.mod h1:B1nGE/6RBFyBRC1RRnf23UpwCdyJ31eukw34oAKukAc= +github.com/juicedata/go-fuse/v2 v2.1.1-0.20240202080323-002ef792942e h1:Oj9V2Losi2fVgVjQ4my0zDbw4F+Ry3VOnfTRCiWwy7Q= +github.com/juicedata/go-fuse/v2 v2.1.1-0.20240202080323-002ef792942e/go.mod h1:B1nGE/6RBFyBRC1RRnf23UpwCdyJ31eukw34oAKukAc= github.com/juicedata/go-nfs-client v0.0.0-20231018052507-dbca444fa7e8 h1:mVVipCbohnzKZPiHGzFncLKEJZpypqjpGr4End2PP48= github.com/juicedata/go-nfs-client v0.0.0-20231018052507-dbca444fa7e8/go.mod h1:xOMqi3lOrcGe9uZLnSzgaq94Vc3oz6VPCNDLJUnXpKs= github.com/juicedata/godaemon v0.0.0-20210629045518-3da5144a127d h1:kpQMvNZJKGY3PTt7OSoahYc4nM0HY67SvK0YyS0GLwA= diff --git a/pkg/fuse/fuse.go b/pkg/fuse/fuse.go index 79d920688172..20758f45218c 100644 --- a/pkg/fuse/fuse.go +++ b/pkg/fuse/fuse.go @@ -224,7 +224,7 @@ func (fs *fileSystem) RemoveXAttr(cancel <-chan struct{}, header *fuse.InHeader, func (fs *fileSystem) Create(cancel <-chan struct{}, in *fuse.CreateIn, name string, out *fuse.CreateOut) (code fuse.Status) { ctx := fs.newContext(cancel, &in.InHeader) defer releaseContext(ctx) - entry, fh, err := fs.v.Create(ctx, Ino(in.NodeId), name, uint16(in.Mode), 0, in.Flags) + entry, fh, err := fs.v.Create(ctx, Ino(in.NodeId), name, uint16(in.Mode), getCreateUmask(in), in.Flags) if err != 0 { return fuse.Status(err) } @@ -447,6 +447,7 @@ func Serve(v *vfs.VFS, options string, xattrs, ioctl bool) error { opt.MaxBackground = 50 opt.EnableLocks = true opt.EnableAcl = conf.Format.EnableACL + opt.DontUmask = conf.Format.EnableACL opt.DisableXAttrs = !xattrs opt.EnableIoctl = ioctl opt.MaxWrite = 1 << 20 diff --git a/pkg/fuse/fuse_darwin.go b/pkg/fuse/fuse_darwin.go index db7fa1fc7e44..d6bc4cae8154 100644 --- a/pkg/fuse/fuse_darwin.go +++ b/pkg/fuse/fuse_darwin.go @@ -24,5 +24,9 @@ func getUmask(in *fuse.MknodIn) uint16 { return 0 } +func getCreateUmask(in *fuse.CreateIn) uint16 { + return 0 +} + func setBlksize(out *fuse.Attr, size uint32) { } diff --git a/pkg/fuse/fuse_linux.go b/pkg/fuse/fuse_linux.go index d6988f9a06e2..171b89403a31 100644 --- a/pkg/fuse/fuse_linux.go +++ b/pkg/fuse/fuse_linux.go @@ -20,6 +20,10 @@ import ( "github.com/hanwen/go-fuse/v2/fuse" ) +func getCreateUmask(in *fuse.CreateIn) uint16 { + return uint16(in.Umask) +} + func getUmask(in *fuse.MknodIn) uint16 { return uint16(in.Umask) }