Question

How to execute shell command with another user in GO, and get output from it ?

I tried:

cmd :=exec.Command("sudo","su",username, "-c",command)
stdout, err := cmd.StdoutPipe()
CheckErr(err)
cmd.Run()

there is no output. anyone know how to do this?

Was it helpful?

Solution

You need to check the output of running the cmd.Run and also get your output using stdout is simpler than using the pipe.

cmd :=exec.Command("sudo","su",username, "-c",command)
cmd.Stderr = os.Stdout
cmd.Stdout = os.Stdout

err := cmd.Run()
CheckErr(err)

That should give you visibility of the error so you can find out what is occuring that prevents the sudo.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top