我想使用密码作为参数运行sudo,以便可以将其用于脚本。我试过了
sudo -S mypassword execute_command
但没有成功。有什么建议么?
Answers:
-S开关使sudo从STDIN读取密码。这意味着你可以做
echo mypassword | sudo -S command
将密码传递给sudo
但是,出于安全方面的考虑,其他不建议在命令中传递密码的建议(例如检查用户是否为root)可能是更好的主意。
sudo chmod -R 0100 myScriptFolder
?那不能解决安全性问题吗(前提是没有人以您的计算机为root用户)?
您可以s
为脚本设置该位,以使其不需要sudo
并以root身份运行(并且您无需在脚本中写入root密码):
sudo chmod +s myscript
+s
是setuid位。+t
是粘性位。
echo -e "YOURPASSWORD\n" | sudo -S yourcommand
echo -e "YOURPASSWORD\n" | sudo -S "run -x"
。它说sudo: run -x: command not found
。任何想法如何解决这个问题?
一种选择是使用-A标志进行sudo。这将运行一个程序来询问密码。而不是询问,您可以拥有一个仅吐出密码的脚本,以便程序可以继续。
# Make sure only root can run our script
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root" 1>&2
exit 1
fi