我想运行以下示例bash脚本,该脚本需要命令的sudo密码
#!/bin/bash
kinit #needs sudo password
vi hello.txt
在运行上面的脚本时,它要求输入密码 如何在命令本身中传递用户名和密码,还是有更好的方法可以跳过在脚本中传递密码?
答案 0 :(得分:8)
因此,如果您可以访问完整系统,则可以更改sudoers文件,以允许使用密码运行某些sudo命令。
在命令行中运行 visudo
找到您的用户并将该行更改为如下所示:
pi ALL =(ALL)NOPASSWD:/ path / to / kinit,/ path / to / another / command
应该这样做。再试一次!
希望有所帮助
答案 1 :(得分:8)
你不能 - 至少,不是你的想法。
您有几个选择:
sudo -v
。凭证将暂时缓存,让您有时间运行脚本。这些中的一个或多个肯定会让你到达你想去的地方 - 而不是你想去那里的方式。
答案 2 :(得分:4)
您不应传递用户名和密码。这是不安全的,如果密码被更改,它将不起作用。
您可以使用:
gksudo kinit # This is going to open a dialog asking for the password.
#sudo kinit # or this if you want to type your password in the terminal
vi hello.txt
或者您可以在root下运行脚本。但请注意,vi也将以root身份运行,这意味着它可能会创建属于root的文件,这可能不是您想要的。