I run go run main.go
as root, but I want to execute top
in main.go as a normal user.
# main.go
package main
import (
"context"
"fmt"
"os"
"os/exec"
)
func run() {
cmd := exec.CommandContext(context.TODO(), "bash", "-c", "top")
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err := cmd.Run()
if err != nil {
fmt.Println(
cmd.ProcessState.Success())
return
}
fmt.Println(
cmd.ProcessState.Success())
}
func main() {
run()
}
How can I do this?