首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在给定sudo密码的情况下使用Golang to shell命令

如何在给定sudo密码的情况下使用Golang to shell命令
EN

Stack Overflow用户
提问于 2021-07-05 17:20:48
回答 1查看 85关注 0票数 0

我想在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))
EN

Stack Overflow用户

回答已采纳

发布于 2021-07-05 21:46:38

您的代码的一个问题是,exec.Command直接执行命令而没有包装shell,但是您已经构造了一个shell管道。不过,您可以手动指定用于sudo的stdin读取器。

    cmd := exec.Command("sudo", "-S", "--", "cat", "/etc/shadow")
    cmd.Stdin = strings.NewReader("mysecretpassword") // your password fed directly to sudo's stdin
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68253600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档