Exec作为另一个用户

时间:2014-05-09 01:03:37

标签: go exec

如何在GO中与另一个用户执行shell命令,并从中获取输出?

我试过了:

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

没有输出。有谁知道怎么做?

1 个答案:

答案 0 :(得分:1)

您需要检查运行cmd.Run的输出,并使用stdout获取输出比使用管道更简单。

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

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

这应该让您可以看到错误,这样您就可以找出阻止sudo发生的事情。