質問

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?

役に立ちましたか?

解決

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.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top