mirror of
				https://github.com/kubenetworks/kubevpn.git
				synced 2025-10-31 02:36:43 +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
	 mazhong
					mazhong