我想创建一个ruby脚本,该脚本从用户获取变量"获取"然后将此变量传递给Linux shell密码提示。
一个例子是:
sudo apt-get update
哪会产生:
[sudo] password for username:
Ruby脚本应该弹出该变量,以便可以执行更新。
任何帮助将不胜感激!
答案 0 :(得分:1)
出于安全原因,默认情况下,sudo不接受标准输入上的密码。你应该为你想要在没有提示的情况下执行的命令配置一个NOPASSWD:
标签的sudoers文件,并调用带有-n
标志的sudo,以确保你的脚本不会挂断等待输入
如果您坚持传入密码,请查看您的sudo是否支持-S
标志,该标志(在我的系统上)显示:
-S The -S (stdin) option causes sudo to read the password from the standard input instead of the terminal device. The password must be followed by a newline character.