From c7cef1773e38a7eef784da1bce8d35092da7c7c3 Mon Sep 17 00:00:00 2001 From: Laurence Date: Wed, 26 Jul 2023 10:47:12 +0100 Subject: [PATCH] Check if GID is already the group if so no need to chown --- cmd/crowdsec-cli/dashboard.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cmd/crowdsec-cli/dashboard.go b/cmd/crowdsec-cli/dashboard.go index f1e7458aa..4d14760c3 100644 --- a/cmd/crowdsec-cli/dashboard.go +++ b/cmd/crowdsec-cli/dashboard.go @@ -9,6 +9,7 @@ import ( "path/filepath" "strconv" "strings" + "syscall" "unicode" "github.com/AlecAivazis/survey/v2" @@ -400,8 +401,12 @@ func checkGroups(forceYes *bool) (*user.Group, error) { if err != nil { return dockerGroup, fmt.Errorf("unable to convert group ID to int: %s", err) } - if err := os.Chown(csConfig.DbConfig.DbPath, 0, intID); err != nil { - return dockerGroup, fmt.Errorf("unable to chown sqlite db file '%s': %s", csConfig.DbConfig.DbPath, err) + if stat, err := os.Stat(csConfig.DbConfig.DbPath); err == nil { + if uint32(intID) != stat.Sys().(*syscall.Stat_t).Gid { + if err := os.Chown(csConfig.DbConfig.DbPath, 0, intID); err != nil { + return dockerGroup, fmt.Errorf("unable to chown sqlite db file '%s': %s", csConfig.DbConfig.DbPath, err) + } + } } return dockerGroup, nil }