如何在不覆盖TTY的情况下将密码传递给su/sudo/ssh?

如何在不覆盖TTY的情况下将密码传递给su/sudo/ssh?

我正在编写一个C Shell程序susudossh..他们都希望自己的密码在控制台输入(TTY),而不是stdin或命令行。

有人知道解决办法吗?

设置无密码sudo不是一种选择。

期待可能是一种选择,但在我的精简系统中不存在。



芜湖不芜
浏览 594回答 3
3回答

开心每一天1111

对于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,我曾多次尝试自动化/脚本它的使用,但没有成功。似乎没有任何内置方式可以在没有提示的情况下将密码传递到命令中。正如其他人所提到的,“期待“实用程序似乎旨在解决这一困境,但最终,建立正确的私钥授权是正确的方式,当试图自动化这一点。

慕哥9229398

我编写了一些AppleScript,它通过对话框提示输入密码,然后构建一个自定义bash命令,如下所示:echo&nbsp;<password>&nbsp;|&nbsp;sudo&nbsp;-S&nbsp;<command>我不确定这是否有帮助。如果sudo接受了一个预先加密的密码,那么我就可以在我的脚本中加密它,而不用担心周围会出现明文密码。不过,这对我和我的情况都适用。

GCT1015

我编写了一些AppleScript,它通过对话框提示输入密码,然后构建一个自定义bash命令,如下所示:echo&nbsp;<password>&nbsp;|&nbsp;sudo&nbsp;-S&nbsp;<command>我不确定这是否有帮助。如果sudo接受了一个预先加密的密码,那么我就可以在我的脚本中加密它,而不用担心周围会出现明文密码。不过,这对我和我的情况都适用。
打开App,查看更多内容
随时随地看视频慕课网APP