From e8ce9e12717c936dd50da5f7c37e2f8a5a7fbf32 Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Wed, 23 Mar 2022 20:34:19 +0800 Subject: [PATCH] fix: host deploy chmod after mkdir to ensure permission --- pkg/hostman/guestfs/fsdriver/base.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pkg/hostman/guestfs/fsdriver/base.go b/pkg/hostman/guestfs/fsdriver/base.go index ad5f84e900..08caad813a 100644 --- a/pkg/hostman/guestfs/fsdriver/base.go +++ b/pkg/hostman/guestfs/fsdriver/base.go @@ -23,6 +23,7 @@ import ( "yunion.io/x/jsonutils" "yunion.io/x/log" + "yunion.io/x/pkg/errors" "yunion.io/x/onecloud/pkg/cloudcommon/types" deployapi "yunion.io/x/onecloud/pkg/hostman/hostdeployer/apis" @@ -50,11 +51,16 @@ func (d *sGuestRootFsDriver) DeployFiles(deploys []*deployapi.DeployContent) err } dirname := filepath.Dir(deploy.Path) if !d.GetPartition().Exists(dirname, caseInsensitive) { - modeRWXOwner := syscall.S_IRUSR | syscall.S_IWUSR | syscall.S_IXUSR | syscall.S_IRGRP | syscall.S_IXGRP | syscall.S_IROTH | syscall.S_IXOTH + modeRWXOwner := syscall.S_IRWXU | syscall.S_IRGRP | syscall.S_IXGRP | syscall.S_IROTH | syscall.S_IXOTH err := d.GetPartition().Mkdir(dirname, modeRWXOwner, caseInsensitive) if err != nil { - log.Errorln(err) - return err + log.Errorf("Mkdir %s fail %s", dirname, err) + return errors.Wrap(err, "Mkdir") + } + err = d.GetPartition().Chmod(dirname, uint32(modeRWXOwner), caseInsensitive) + if err != nil { + log.Errorf("Chmod %s fail %s", dirname, err) + return errors.Wrap(err, "Chmod") } } if len(deploy.Content) > 0 {