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

有人知道解决办法吗?

设置密码小于sudo不是一个选项.

could be an option, but it's not present on my stripped-down system.

推荐答案

对于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,我已经多次try 自动化/script,但都没有成功.似乎没有任何内置方式可以在没有提示的情况下将密码传递到命令中.正如其他人所提到的,"expect"实用程序似乎旨在解决这一难题,但最终,在try 实现自动化时,设置正确的私钥授权是正确的方法.

Linux相关问答推荐

C++17:G++8.5版似乎无法正确生成无符号64位伪随机整数

在新环境中使用Unicode范围的sed表达式有问题

在正在运行的进程的输出周围添加自定义字符串

BASH:在curl输出的每一行添加前缀

inotifywait 可以说文件在另一个进程可以访问之前已关闭吗?

使用 sed 从文本文件中删除特定字符串

如何在 Linux 上使用 -grep 构建过滤间隔的命令

如何让 Flutter 用鼠标拖动而不是滚轮滚动? (Linux)

如何在ubuntu中通过.sh文件启动多个服务

如何使用 __attribute__((visibility("default")))?

XML 编辑/查看软件

Git为每次推送输入长密码

在 C 中设置环境变量

Linux 和 I/O 完成端口?

如何在python中找到文件或目录的所有者

如何删除 Mercurial 存储库

以原子方式移动目录

在 bash 中将输出作为 cp 的参数传递

ngrok 如何在防火墙后工作?

grep 递归查找 Linux 上的特定文件类型