From 9b21ec27e46ed68ef1daa4a94fd1a4b621ab39fe Mon Sep 17 00:00:00 2001 From: limd Date: Wed, 23 Sep 2020 18:35:37 +0800 Subject: [PATCH] mount: auto created dir set corrct umask fix bug --- weed/command/mount.go | 2 +- weed/command/mount_std.go | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/weed/command/mount.go b/weed/command/mount.go index 7bf59cdc7..a359e52ac 100644 --- a/weed/command/mount.go +++ b/weed/command/mount.go @@ -44,7 +44,7 @@ func init() { mountOptions.cacheSizeMB = cmdMount.Flag.Int64("cacheCapacityMB", 1000, "local file chunk cache capacity in MB (0 will disable cache)") mountOptions.dataCenter = cmdMount.Flag.String("dataCenter", "", "prefer to write to the data center") mountOptions.allowOthers = cmdMount.Flag.Bool("allowOthers", true, "allows other users to access the file system") - mountOptions.umaskString = cmdMount.Flag.String("umask", "022", "octal umask, e.g., 022, 0111") + mountOptions.umaskString = cmdMount.Flag.String("umask", "000", "octal umask, e.g., 022, 0111") mountOptions.nonempty = cmdMount.Flag.Bool("nonempty", false, "allows the mounting over a non-empty directory") mountCpuProfile = cmdMount.Flag.String("cpuprofile", "", "cpu profile output file") mountMemProfile = cmdMount.Flag.String("memprofile", "", "memory profile output file") diff --git a/weed/command/mount_std.go b/weed/command/mount_std.go index 3947a871a..e84eebada 100644 --- a/weed/command/mount_std.go +++ b/weed/command/mount_std.go @@ -12,6 +12,7 @@ import ( "runtime" "strconv" "strings" + "syscall" "time" "github.com/seaweedfs/fuse" @@ -91,9 +92,11 @@ func RunMount(option *MountOptions, umask os.FileMode) bool { // detect mount folder mode if *option.dirAutoCreate { - os.MkdirAll(dir, os.FileMode(0777) &^ umask) + oldMask := syscall.Umask(0) + os.MkdirAll(dir, os.ModePerm&^umask) + syscall.Umask(oldMask) } - mountMode := os.ModeDir | 0755 + mountMode := os.ModeDir | 0777 fileInfo, err := os.Stat(dir) if err == nil { mountMode = os.ModeDir | fileInfo.Mode()