我想运行以下示例bash脚本,其中一个命令需要sudo密码:
#!/bin/bash
kinit #needs sudo password
vi hello.txt
在运行上述脚本时,它会要求输入密码。
我该如何在命令中传递用户名和密码或者有没有更好的方式可以避免在脚本中传递密码?
你不能这样做——至少不是你想的那样。
你有几个选择:
sudo -v
。凭证将被暂时缓存,为您提供运行脚本的时间。这些方案中的一种或多种肯定会帮助你到达目的地,只是没有按照你想要的方式实现。
pi ALL=(ALL) NOPASSWD: /path/to/kinit, /path/to/another/command
应该可以了。再试一次吧!
希望能对你有所帮助。
不应该直接传递用户名和密码,这样做不安全,并且如果密码更改后将无法使用。
可以使用以下方式:
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的文件,这可能不是您想要的。