hotfix: fix init dir permission deny

This commit is contained in:
fengcaiwen
2025-05-07 09:10:24 +08:00
committed by naison
parent 56b81574ac
commit 54ed2b711f
9 changed files with 27 additions and 48 deletions

View File

@@ -6,6 +6,8 @@ import (
"path/filepath"
"github.com/pkg/errors"
"github.com/wencaiwulue/kubevpn/v2/pkg/daemon/elevate"
)
const (
@@ -29,42 +31,25 @@ const (
//go:embed config.yaml
var config []byte
func Init() {
err := os.MkdirAll(DaemonPath, 0755)
if err != nil {
panic(err)
func init() {
if elevate.IsAdmin() {
return
}
err = os.Chmod(DaemonPath, 0755)
if err != nil {
panic(err)
}
err = os.MkdirAll(PprofPath, 0755)
if err != nil {
panic(err)
}
err = os.Chmod(PprofPath, 0755)
if err != nil {
panic(err)
}
err = os.MkdirAll(GetSyncthingPath(), 0755)
if err != nil {
panic(err)
}
err = os.Chmod(GetSyncthingPath(), 0755)
if err != nil {
panic(err)
}
err = os.MkdirAll(GetTempPath(), 0755)
if err != nil {
panic(err)
}
err = os.Chmod(GetTempPath(), 0755)
if err != nil {
panic(err)
var paths = []string{DaemonPath, PprofPath, GetSyncthingPath(), GetTempPath()}
for _, path := range paths {
err := os.MkdirAll(path, 0755)
if err != nil {
panic(err)
}
err = os.Chmod(path, 0755)
if err != nil {
panic(err)
}
}
path := filepath.Join(HomePath, ConfigFile)
_, err = os.Stat(path)
_, err := os.Stat(path)
if errors.Is(err, os.ErrNotExist) {
err = os.WriteFile(path, config, 0644)
}

View File

@@ -11,9 +11,6 @@ const (
DefaultRemoteDir = "/kubevpn-data"
// EnvDisableSyncthingLog disable syncthing log, because it can not set output writer, only write os.Stdout or io.Discard
EnvDisableSyncthingLog = "LOGGER_DISCARD"
SyncthingAPIKey = "kubevpn"
)

View File

@@ -0,0 +1,4 @@
package elevate
// EnvDisableSyncthingLog disable syncthing log, because it can not set output writer, only write os.Stdout or io.Discard
const EnvDisableSyncthingLog = "LOGGER_DISCARD"

View File

@@ -12,7 +12,6 @@ import (
"golang.org/x/sys/unix"
"k8s.io/client-go/tools/clientcmd"
"github.com/wencaiwulue/kubevpn/v2/pkg/config"
plog "github.com/wencaiwulue/kubevpn/v2/pkg/log"
)
@@ -29,7 +28,7 @@ func RunCmdWithElevated(exe string, args []string) error {
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Stdin = os.Stdin
cmd.Env = append(os.Environ(), config.EnvDisableSyncthingLog+"=1")
cmd.Env = append(os.Environ(), EnvDisableSyncthingLog+"=1")
err := cmd.Start()
if err != nil {
return err
@@ -57,7 +56,7 @@ func RunCmd(exe string, args []string) error {
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Stdin = os.Stdin
cmd.Env = append(os.Environ(), config.EnvDisableSyncthingLog+"=1")
cmd.Env = append(os.Environ(), EnvDisableSyncthingLog+"=1")
err := cmd.Start()
if err != nil {
return err

View File

@@ -12,7 +12,6 @@ import (
"golang.org/x/sys/windows"
"github.com/wencaiwulue/kubevpn/v2/pkg/config"
plog "github.com/wencaiwulue/kubevpn/v2/pkg/log"
)
@@ -45,7 +44,7 @@ func RunCmdWithElevated(exe string, arg []string) error {
//https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-showwindow
var showCmd int32 = 0 //SW_NORMAL
os.Setenv(config.EnvDisableSyncthingLog, "1")
os.Setenv(EnvDisableSyncthingLog, "1")
err = windows.ShellExecute(0, verbPtr, exePtr, argPtr, cwdPtr, showCmd)
if err != nil {
plog.G(context.Background()).Warn(err)

View File

@@ -13,7 +13,6 @@ import (
"k8s.io/client-go/tools/clientcmd"
"github.com/wencaiwulue/kubevpn/v2/pkg/config"
plog "github.com/wencaiwulue/kubevpn/v2/pkg/log"
)
@@ -30,7 +29,7 @@ func RunWithElevated() {
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Stdin = os.Stdin
cmd.Env = append(os.Environ(), config.EnvDisableSyncthingLog+"=1")
cmd.Env = append(os.Environ(), EnvDisableSyncthingLog+"=1")
// while send single CTRL+C, command will quit immediately, but output will cut off and print util quit final
// so, mute single CTRL+C, let inner command handle single only
go func() {

View File

@@ -12,7 +12,6 @@ import (
"golang.org/x/sys/windows"
"github.com/wencaiwulue/kubevpn/v2/pkg/config"
plog "github.com/wencaiwulue/kubevpn/v2/pkg/log"
)
@@ -30,7 +29,7 @@ func RunWithElevated() {
var showCmd int32 = 1 //SW_NORMAL
os.Setenv(config.EnvDisableSyncthingLog, "1")
os.Setenv(EnvDisableSyncthingLog, "1")
err := windows.ShellExecute(0, verbPtr, exePtr, argPtr, cwdPtr, showCmd)
if err != nil {
plog.G(context.Background()).Warn(err)
@@ -49,7 +48,7 @@ func RunWithElevatedInnerExec() error {
join := strings.Join(append([]string{executable}, os.Args[1:]...), " ")
// Powershell Start C:\Users\naison\Desktop\kubevpn-windows-amd64.exe -Verb Runas -Wait -WindowStyle Hidden
c, _ := syscall.UTF16PtrFromString(fmt.Sprintf(`%s Start "%s" -Verb Runas`, path, join))
env, _ := syscall.UTF16PtrFromString(config.EnvDisableSyncthingLog + "=1")
env, _ := syscall.UTF16PtrFromString(EnvDisableSyncthingLog + "=1")
err = windows.CreateProcess(nil, c, nil, nil, true, windows.INHERIT_PARENT_AFFINITY, env, nil, &si, &pi)
if err != nil {
return err