From 07b1876954edfae870266275c9288430d6ea592a Mon Sep 17 00:00:00 2001 From: Matthew Penner Date: Sun, 2 Feb 2020 14:41:15 -0700 Subject: [PATCH] Chown directories, not just files --- server/filesystem.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/server/filesystem.go b/server/filesystem.go index c83d8c6..9581942 100644 --- a/server/filesystem.go +++ b/server/filesystem.go @@ -66,7 +66,7 @@ func (fs *Filesystem) SafePath(p string) (string, error) { // Range over all of the path parts and form directory pathings from the end // moving up until we have a valid resolution or we run out of paths to try. for k := range parts { - try = strings.Join(parts[:(len(parts) - k)], "/") + try = strings.Join(parts[:(len(parts)-k)], "/") if !strings.HasPrefix(try, fs.Path()) { break @@ -130,7 +130,7 @@ func (fs *Filesystem) HasSpaceAvailable() bool { if size, err := fs.DirectorySize("/"); err != nil { zap.S().Warnw("failed to determine directory size", zap.String("server", fs.Server.Uuid), zap.Error(err)) } else { - fs.Server.Cache.Set("disk_used", size, time.Second * 60) + fs.Server.Cache.Set("disk_used", size, time.Second*60) } } @@ -373,6 +373,9 @@ func (fs *Filesystem) chownDirectory(path string) error { return errors.WithStack(err) } + // Chown the directory itself. + os.Chown(cleaned, config.Get().System.User.Uid, config.Get().System.User.Gid) + files, err := ioutil.ReadDir(cleaned) if err != nil { return errors.WithStack(err) @@ -387,6 +390,7 @@ func (fs *Filesystem) chownDirectory(path string) error { fs.chownDirectory(p) }(filepath.Join(cleaned, f.Name())) } else { + // Chown the file. os.Chown(filepath.Join(cleaned, f.Name()), fs.Configuration.User.Uid, fs.Configuration.User.Gid) } } @@ -567,4 +571,4 @@ func (fs *Filesystem) EnsureDataDirectory() error { } return nil -} \ No newline at end of file +}