mirror of
https://github.com/kubenetworks/kubevpn.git
synced 2025-11-01 03:04:02 +08:00
fix: linux startup must use sudo (#651)
This commit is contained in:
@@ -4,26 +4,16 @@ package elevate
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"flag"
|
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"runtime"
|
|
||||||
|
|
||||||
"golang.org/x/sys/unix"
|
"golang.org/x/sys/unix"
|
||||||
"k8s.io/client-go/tools/clientcmd"
|
|
||||||
|
|
||||||
plog "github.com/wencaiwulue/kubevpn/v2/pkg/log"
|
plog "github.com/wencaiwulue/kubevpn/v2/pkg/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func RunCmdWithElevated(exe string, args []string) error {
|
func RunCmdWithElevated(exe string, args []string) error {
|
||||||
// fix if startup with normal user, after elevated home dir will change to root user in linux
|
cmd := exec.Command("sudo", append([]string{"--preserve-env=HOME", "--background", exe}, args...)...)
|
||||||
// but unix don't have this issue
|
|
||||||
if runtime.GOOS == "linux" && flag.Lookup("kubeconfig") == nil {
|
|
||||||
if _, err := os.Stat(clientcmd.RecommendedHomeFile); err == nil {
|
|
||||||
os.Args = append(os.Args, "--kubeconfig", clientcmd.RecommendedHomeFile)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cmd := exec.Command("sudo", append([]string{"--preserve-env", "--background", exe}, args...)...)
|
|
||||||
plog.G(context.Background()).Debug(cmd.Args)
|
plog.G(context.Background()).Debug(cmd.Args)
|
||||||
cmd.Stdout = os.Stdout
|
cmd.Stdout = os.Stdout
|
||||||
cmd.Stderr = os.Stderr
|
cmd.Stderr = os.Stderr
|
||||||
@@ -41,13 +31,6 @@ func RunCmdWithElevated(exe string, args []string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func RunCmd(exe string, args []string) error {
|
func RunCmd(exe string, args []string) error {
|
||||||
// fix if startup with normal user, after elevated home dir will change to root user in linux
|
|
||||||
// but unix don't have this issue
|
|
||||||
if runtime.GOOS == "linux" && flag.Lookup("kubeconfig") == nil {
|
|
||||||
if _, err := os.Stat(clientcmd.RecommendedHomeFile); err == nil {
|
|
||||||
os.Args = append(os.Args, "--kubeconfig", clientcmd.RecommendedHomeFile)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cmd := exec.Command(exe, args...)
|
cmd := exec.Command(exe, args...)
|
||||||
cmd.SysProcAttr = &unix.SysProcAttr{
|
cmd.SysProcAttr = &unix.SysProcAttr{
|
||||||
Setpgid: true,
|
Setpgid: true,
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ func RunWithElevated() {
|
|||||||
os.Args = append(os.Args, "--kubeconfig", clientcmd.RecommendedHomeFile)
|
os.Args = append(os.Args, "--kubeconfig", clientcmd.RecommendedHomeFile)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cmd := exec.Command("sudo", append([]string{"--preserve-env"}, os.Args...)...)
|
cmd := exec.Command("sudo", append([]string{"--preserve-env=HOME"}, os.Args...)...)
|
||||||
plog.G(context.Background()).Debug(cmd.Args)
|
plog.G(context.Background()).Debug(cmd.Args)
|
||||||
cmd.Stdout = os.Stdout
|
cmd.Stdout = os.Stdout
|
||||||
cmd.Stderr = os.Stderr
|
cmd.Stderr = os.Stderr
|
||||||
|
|||||||
Reference in New Issue
Block a user