我正在编写一个将执行suor sudo或or 的C Shell程序ssh。他们都希望在控制台输入(TTY)而不是stdin或命令行中输入密码。
su
sudo
ssh
有人知道解决方案吗?
设置无密码sudo不是一种选择。
期望可能是一个选项,但在我的精简系统中不存在。
对于sudo,有一个-S选项,用于接受来自标准输入的密码。这是人员条目:
-S The -S (stdin) option causes sudo to read the password from the standard input instead of the terminal device.
这将允许您运行以下命令:
echo myPassword | sudo -S ls /tmp
至于ssh,我已经做了很多尝试来自动化/脚本化它的用法,但是都没有成功。在没有提示的情况下,似乎没有任何内置方法可以将密码传递到命令中。正如其他人提到的那样,“ 期望 ”实用程序似乎旨在解决这一难题,但最终,设置正确的私钥授权是尝试使其自动化的正确方法。