猿问

如何使用戈朗来破坏命令与给定的 sudo 密码

我想使用一段命令行在Go中设置日期时间,但以下代码失败


datetime := "2021-06-17 18:20:41.8"

sudoPassword := "xxxxx"

app := "echo"

arg0 := sudoPassword

arg1 := "|sudo -S"

arg2 := "date"

arg3 := "-s"

arg4 := "\"" + datetime + "\""

cmd := exec.Command(app, arg0, arg1, arg2, arg3, arg4)

有没有正确的方法来做到这一点?像在Python中一样自动填写密码


os.system('echo %s|sudo -S %s' % (sudoPassword, command))


不负相思意
浏览 59回答 1
1回答

慕尼黑8549860

代码的一个问题是,execs 直接命令而不使用包装外壳,但您已经构造了一个 shell 管道。不过,您可以手动指定一个用于 sudo 的 stdin 读取器。exec.Command    cmd := exec.Command("sudo", "-S", "--", "cat", "/etc/shadow")     cmd.Stdin = strings.NewReader("mysecretpassword") // your password fed directly to sudo's stdin
随时随地看视频慕课网APP

相关分类

Go
我要回答