ExpectIt:实施 sudo -i 时遇到问题

2023-11-29

我正在创建一个 Web shell 客户端并成功创建了一个简单的终端。

enter image description here

我可以执行基本命令,但我需要执行sudo -i并传递密码。

enter image description here

发送“sudo -i”命令后,我“期望”新用户(作为 root)提示,但“期望”永远等待。我可以看到提示符合预期。

enter image description here

该代码仅适用于“sudo”操作并且工作正常。通用命令是在单独的方法中执行的。

expect.sendLine( "sudo -i" );
expect.expect( Matchers.contains( ":" ) );
expect.sendLine( password );

// Old prompt was user prompt :  user + "@"
// Now I need the root prompt :  user + ":"
PROMPT = user + ":";

常用命令(run(String command)方法): 仅当我执行 SUDO 时,这才会在 Expect.expect() 处阻塞(如果我在 sudo 之前尝试此操作,一切也都正常)...

expect.sendLine( command );
String result = expect.expect( Matchers.contains( PROMPT ) ).getInput();

错误(期望 sudo 提示):

net.sf.expectit.ExpectIOException: Expect operation fails (timeout: 30000 ms) for matcher: contains('sadlog:')

expect.sendLine( command );
String result = expect.expect( Matchers.contains(":")).getInput();
int pos = result.indexOf(PROMPT);

if (pos > -1) {
    // SUCCESS
} else {
    // FAILURE
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ExpectIt:实施 sudo -i 时遇到问题 的相关文章

随机推荐

  • 返回数组元素时,非常量引用的初始化无效

    我正在编写一个包装动态分配数组的类 并且正在尝试编写operator 函数 目前我有 bool solution operator unsigned int pos if pos lt size return this gt data po
  • 在 iPhone 上获取 DNS 服务器 IP

    我正在尝试使用以下命令获取我的 dns 服务器 IPlibresolv框架 但我得到的只是 0 0 0 0 void getDns res init for int i 0 i
  • 最小化单应性矩阵的误差

    我有一个单应性矩阵 h1 h2 h3 h4 h5 h6 h7 h8 h9 我改变了一个点p1 to P1使用上面的单应性矩阵 相似地 p2 to P2 p3 to P3 p4 to P4 我知道之间的区别 P1 P2 D1 P2 P3 D2
  • Shell 脚本删除数字字符串后的新行

    我需要编写一个 SHELL 脚本来仅在数字字符串之后删除新行 或者字符串不以数字开头 例如有一个文件 asasas 12345 adab 123 123 我需要这样的输出 asasas 12345 adab 123 123 sed a N
  • simplexml_load_file 和 simplexml_load_string 之间的区别

    我想将 xml 文件放入我的程序中并将其放入数组中 以便我可以将其放入表中 我想知道如何做到这一点 并且我已经阅读了 php 手册 但我似乎无法掌握它 为了做我想做的事 我需要使用simplexml load string 或者我需要命令他
  • Apache SetEnvIf 麻烦

    我的中有以下内容 htaccess file SetEnvIf Host example com myvar 1
  • 如何使用 XML::LibXML 解析 XML 文档并构建 Perl 哈希

    我有这样的 XML 数据
  • 如何用Flutter实现position:sticky和bottom 0?

    我想建立一个带有粘性页脚的列表视图 例如本文的 粘到底 在颤振中 In CSS main footer position sticky bottom 0 但是 Flutter 该怎么办呢 我想要的是 可滚动的大内容 页脚 粘性 可滚动的大内
  • JavaScript 闭包和 setTimeout

    闭包是我在 JS 中还没有完全掌握的东西 我认为这是一个封闭问题 我正在尝试创建一个进度条 每隔 x 秒我想增加 DIV 的宽度 这是应该执行此操作的部分 for i 0 i lt counter i setTimeout function
  • System.Drawing.Graphics.DpiX 始终返回 96

    我有 vb net winform 应用程序 自动缩放模式 dpi 自动缩放 假 自动调整大小 true 更改 DPI 设置后我已退出 我也尝试过重新启动机器 Using g As Graphics form CreateGraphics
  • 如何将我的代码从 v11 迁移到 Discord.js v12?

    我升级到 Discord js v12 但它破坏了我现有的 v11 代码 以下是导致错误的一些示例 TypeError client users get is not a function const user client users g
  • Android 中用颜色填充 ArrayList

    我想创建2个ArrayList 一种持有 16 种颜色 另一种持有 139 种颜色 我有颜色列表 RGB 为 255 126 32 十六进制为 0xFFFF2552 我想使用 ArrayList 稍后从中选择随机颜色 我试过 int 但不起
  • 在通过管道将 STDOUT 传输到文件时捕获 STDERR 的输出

    我的情况很奇怪 我正在尝试使用 Perl 自动备份 SVN 存储库集合 我正在使用 svnadmin dump 命令 该命令将转储发送到 STDOUT 并将遇到的任何错误发送到 STDERR 我需要运行的命令的形式为 svnadmin du
  • 对可拖动项目应用双击

    我有一个黄色按钮 可以将其拖放到灰色面板上 我使用 handleDragStop 函数来处理用户拖放黄色按钮时需要完成的所有任务 一切都很好 但是 我想知道如何启用用户双击黄色按钮的行为并具有与拖放时相同的行为 top icon dragg
  • c# 自定义 Dictionary 接受重复键进行序列化

    我需要实现一个有点类似字典的自定义功能 但可以插入重复的键 所以基本上我需要从 Dictionary 中得到的是将对象序列化为以下 JSON 的可能性 One Value 1 Two Value x One Value 10 Two Val
  • 如何通过 Watin 中的代码关闭弹出窗口拦截器?

    我在通过 watin 代码关闭弹出窗口阻止程序时遇到麻烦 谁能帮我知道如何通过 watin 关闭 IE 的弹出窗口拦截器 如果 IE 中安装了工具栏 如 google yahoo 或 msn 的弹出窗口拦截器 有什么方法可以关闭它们吗 提前
  • 推荐用于托管许多独立补丁的 DVCS 机制

    我有一个项目刚刚开始http sourceforge net projects iotabuildit 更多详细信息请参见http sourceforge net p iotabuildit wiki Home 当前正在使用 Mercuri
  • 如何在ReactJS中使用video元素的playbackRate参数?

    我需要你的帮助来修复我的代码 class header extends Component playVideo You can use the play method as normal on your video ref this ref
  • Lua 5.2 添加 luasocket (不稳定)

    我正在尝试将 luasocket 与 lua 5 2 一起使用 我从 git 存储库下载了代码并构建了它 然后进行 make install 以便生成 core dll 和 mime dll 将它们放入正在开发的自定义 lua 程序目录 C
  • ExpectIt:实施 sudo -i 时遇到问题

    我正在创建一个 Web shell 客户端并成功创建了一个简单的终端 我可以执行基本命令 但我需要执行sudo i并传递密码 发送 sudo i 命令后 我 期望 新用户 作为 root 提示 但 期望 永远等待 我可以看到提示符合预期 该