在shell提示时自动输入定义的密码?

时间:2019-07-17 09:41:07

标签: go

我正在编写一个Golang应用程序,它将运行一些bash脚本。在其中一个命令中,脚本将以sudo身份运行,并且需要我手动输入密码。

我可以知道如何自动发送密码吗?

cmd := exec.Command("/bin/sh", "-c", "knife bootstrap xxx.xxx.xxx.xxx -x user_name --sudo -i ~/.ssh/id_rsa.pub --node-name node_name -P password -c ~/chef-repo/.chef/config.rb")

stdin, err := cmd.StdinPipe()
if err != nil {
    log.Panic(err)
}

go func() {
    defer stdin.Close()
    io.WriteString(stdin, "password")
}()

我目前还停留在刀具引导程序将在厨师客户端提示以下密码的步骤。

user_name@xxx.xxx.xxx.xxx's password:

我无法使用Expect捕获此字符串并提供密码,这似乎与将在终端中输出的常规字符串不同。

1 个答案:

答案 0 :(得分:-1)

我认为您需要使用sudo -S

  

回显密码|须藤-S vim a.txt