diff options
| author | Chris Lu <chris.lu@gmail.com> | 2019-07-24 00:03:05 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2019-07-24 00:03:05 -0700 |
| commit | 5956dfd08d690ee67bcd4a7f5730785f7a6df201 (patch) | |
| tree | 0ec5f401c2129e9ea5bb9e21b3acfe3d0f5dafe3 /weed/filesys | |
| parent | 3f851feb59d9ffc80ac366222435eb54f98456ad (diff) | |
| download | seaweedfs-5956dfd08d690ee67bcd4a7f5730785f7a6df201.tar.xz seaweedfs-5956dfd08d690ee67bcd4a7f5730785f7a6df201.zip | |
mount: add umask option
related to https://github.com/chrislusf/seaweedfs/issues/978
Diffstat (limited to 'weed/filesys')
| -rw-r--r-- | weed/filesys/dir.go | 4 | ||||
| -rw-r--r-- | weed/filesys/dir_link.go | 2 | ||||
| -rw-r--r-- | weed/filesys/filehandle.go | 2 | ||||
| -rw-r--r-- | weed/filesys/wfs.go | 1 |
4 files changed, 5 insertions, 4 deletions
diff --git a/weed/filesys/dir.go b/weed/filesys/dir.go index 0e9e92e16..79cf45385 100644 --- a/weed/filesys/dir.go +++ b/weed/filesys/dir.go @@ -101,7 +101,7 @@ func (dir *Dir) Create(ctx context.Context, req *fuse.CreateRequest, Attributes: &filer_pb.FuseAttributes{ Mtime: time.Now().Unix(), Crtime: time.Now().Unix(), - FileMode: uint32(req.Mode), + FileMode: uint32(req.Mode &^ dir.wfs.option.Umask), Uid: req.Uid, Gid: req.Gid, Collection: dir.wfs.option.Collection, @@ -146,7 +146,7 @@ func (dir *Dir) Mkdir(ctx context.Context, req *fuse.MkdirRequest) (fs.Node, err Attributes: &filer_pb.FuseAttributes{ Mtime: time.Now().Unix(), Crtime: time.Now().Unix(), - FileMode: uint32(req.Mode), + FileMode: uint32(req.Mode &^ dir.wfs.option.Umask), Uid: req.Uid, Gid: req.Gid, }, diff --git a/weed/filesys/dir_link.go b/weed/filesys/dir_link.go index 92cf04d58..94e443649 100644 --- a/weed/filesys/dir_link.go +++ b/weed/filesys/dir_link.go @@ -27,7 +27,7 @@ func (dir *Dir) Symlink(ctx context.Context, req *fuse.SymlinkRequest) (fs.Node, Attributes: &filer_pb.FuseAttributes{ Mtime: time.Now().Unix(), Crtime: time.Now().Unix(), - FileMode: uint32(os.FileMode(0755) | os.ModeSymlink), + FileMode: uint32((os.FileMode(0777) | os.ModeSymlink) &^ dir.wfs.option.Umask), Uid: req.Uid, Gid: req.Gid, SymlinkTarget: req.Target, diff --git a/weed/filesys/filehandle.go b/weed/filesys/filehandle.go index ceec50e13..1f4754dd1 100644 --- a/weed/filesys/filehandle.go +++ b/weed/filesys/filehandle.go @@ -148,7 +148,7 @@ func (fh *FileHandle) Flush(ctx context.Context, req *fuse.FlushRequest) error { fh.f.entry.Attributes.Gid = req.Gid fh.f.entry.Attributes.Mtime = time.Now().Unix() fh.f.entry.Attributes.Crtime = time.Now().Unix() - fh.f.entry.Attributes.FileMode = uint32(0770) + fh.f.entry.Attributes.FileMode = uint32(0777 &^ fh.f.wfs.option.Umask) } request := &filer_pb.CreateEntryRequest{ diff --git a/weed/filesys/wfs.go b/weed/filesys/wfs.go index 9018c36ed..1bd9b5cc9 100644 --- a/weed/filesys/wfs.go +++ b/weed/filesys/wfs.go @@ -28,6 +28,7 @@ type Option struct { DataCenter string DirListingLimit int EntryCacheTtl time.Duration + Umask os.FileMode MountUid uint32 MountGid uint32 |
