0

我发誓在 X 中曾经有一种方法可以开始将所有终端流量捕获到主机上的文件中。它可能是 HummingBird 的扩展,但我认为它是标准的。现在,我找不到诀窍了。我是幻觉(当你变老时发生),还是有可能?

我不是在谈论“三通”。我希望能够向标准输出发送一个 xterm 控制序列,给出一个文件名,并从那时起将窗口中显示的所有内容保存到文件中(直到发出书挡取消)。

4

3 回答 3

3

此功能称为日志记录并存在于源代码中,但出于安全原因默认禁用。您是否真的希望每个能够将控制序列写入您的终端的人(例如,您可能有一天会编写任何文件的作者cat)都能够将任意数据写入您帐户下的任意命名的文件?

例如,攻击者可以轻松地使用此功能修改您~/.ssh/authorized_keys以授予攻击者访问权限,并更改您~/.profile以使用您的 IP 地址 ping 攻击者。

也就是说,如果您使用--enable-loggingAND you 编译 xterm #define ALLOWLOGFILECHANGES,那么根据Xterm 控制序列手册,您将可以访问以下控制序列:

^[[?46h            Start logging
^[[?46l            Stop logging
^[]46;filename\007 Change log file to `filename`

默认情况下,将调用日志文件名Xterm.log.hostname.yyyy.mm.dd.hh.mm.ss.XXXXXX

还有一个选项可以通过管道启用日志记录,如果您允许通过控制序列更改记录器,这也是非常危险的。这也将允许任何人在您的系统上执行他们的代码。

于 2009-04-17T04:24:46.067 回答
1

问题比较模糊。

尝试查看:

  1. “ttyrec/ttyplay”用于录制终端会话的文本模式“电影”
  2. 用于记录整个会话的注销标准输出的“屏幕”
  3. "tee" 用于记录单个命令的标准输出/标准错误
于 2008-10-08T21:01:54.907 回答
0

我对你问问题的方式有点困惑。首先你提到 Xterm 然后 X 然后是终端,你只是在寻找“tee”(man tee)命令吗?

于 2008-10-08T20:57:46.163 回答