Go言語 sudo のパスワードを Stdin から入力する
exec.Command で sudo のパスワードを Stdin から入力
package main import ( "fmt" "os" "os/exec" "strings" ) func main() { command := []string{"sudo", "-S", "chown", "-R", "root:root", "foo.txt"} cmd := exec.Command(command[0], command[1:]...) // Stdinからパスワードを入力 cmd.Stdin = strings.NewReader("PASSWORD" + "\n") cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr if err := cmd.Run(); err != nil { log.Fatal(err) } }
ちゃんと変更されてる