当前位置: 首页 > 面试题库 >

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

宰父俊民
2023-03-14
问题内容

我正在编写一个将执行suor sudo或or 的C Shell程序ssh。他们都希望在控制台输入(TTY)而不是stdin或命令行中输入密码。

有人知道解决方案吗?

设置无密码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,我已经做了很多尝试来自动化/脚本化它的用法,但是都没有成功。在没有提示的情况下,似乎没有任何内置方法可以将密码传递到命令中。正如其他人提到的那样,“
期望
”实用程序似乎旨在解决这一难题,但最终,设置正确的私钥授权是尝试使其自动化的正确方法。



 类似资料:
  • 问题内容: 我有两个活动,我分别从这两个活动向Firestore添加数据。但是,每当我向Firestore添加第二个活动数据时,它就会覆盖第一个活动数据。我在以下两个活动中使用了以下代码: 如何停止覆盖?我想将两个“活动”数据保存在同一文件夹中。 问题答案: 我建议您再添加一个文档或集合,以便它可以为单个用户存储多个数据值。 您可以为两个活动创建文档参考: 或者,您可以为其创建一个子集合: 更多关

  • 问题内容: 我知道不推荐这样做,但是是否可以将用户密码传递给scp? 作为批处理作业的一部分,我想通过scp复制文件,接收服务器当然需要密码,不,我不能轻易地将其更改为基于密钥的身份验证。 问题答案: 您就可以使用一个工具脚本它预期(有得心应手绑定太像Pexpect的为Python)。

  • 经过一些处理后,我得到了一个DStream[字符串,ArrayList[字符串]],所以当我使用saveAsTextFile将其写入hdfs时,每个批处理后它都会覆盖数据,所以如何通过附加到以前的结果来写入新结果 编辑:: 如果有人可以帮助我将输出转换为avro格式,然后写入HDFS并附加

  • 问题内容: 我有和。 我的Linux Mint 12上有很多错误,我只是重新安装了它,所以我想再次从头开始安装所有内容。 这是我的错误之一。我在那里收到一个有趣的答案: 停止使用su和sudo运行virtualenv。 你需要以普通用户身份运行virtualenv。 你已经使用sudo创建了virtualenv,这就是为什么你会收到这些错误的原因。 那么如何不使用安装呢?我可以使用还是不使用?还是

  • 本文向大家介绍如何在不覆盖现有文档的情况下更新MongoDB文档?,包括了如何在不覆盖现有文档的情况下更新MongoDB文档?的使用技巧和注意事项,需要的朋友参考一下 要仅更新字段值,请使用update()和$set。这不会覆盖现有的。首先让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是更新文档而不覆盖现有文档的查询- 在find()方法

  • 我是第一次使用代码优先的方法。如果我错过了一些非常基本的东西,请原谅我。 我需要传递连接字符串到DB上下文,但我不能将连接字符串app.config,因为我在类本身调用一个金块,它给我连接字符串。 这种做法正确吗?我无法在本地系统上测试此功能。还是我应该把绳子传给基地 类A():基(连接)