2008-10-08 136 views
0

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

我不是在说'发球台'。我希望能够将一个xterm控制序列发送到标准输出,给出一个文件名,并从该时间开始在窗口中显示保存到该文件中的字符(直到取消发布取消)。Xterm控制序列'T'输出到一个文件

回答

3

此功能称为记录和存在于源代码,但默认出于安全原因禁止的标准输出/标准错误。您是否真的希望每个能够将控制序列写入您的终端的人(,例如,您可能会在某天cat的任何文件的作者)能够将任意数据写入您帐户下的任意命名文件?

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

这就是说,如果你根据Xterm Control Sequences手工编译的xterm与--enable-logging和你#define ALLOWLOGFILECHANGES,那么,你将有机会获得以下控制序列:

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

日志文件名称会被默认调用Xterm.log.hostname.yyyy.mm.dd.hh.mm.ss.XXXXXX

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

+0

怀疑这......我不会妥协的安全xterm只是为了得到这个小好处。我已经进入了一个两级脚本方案,其中内部脚本的完整日志记录是赋予外部脚本的选项。谢谢! – 2009-04-17 21:51:33

0

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

+0

感谢您的反馈 - 编辑和改进的问题,我希望。 – 2008-10-08 21:03:09

1

问题比较模糊。

试着看一下:

  1. “ttyrec/ttyplay”记录终端会话
  2. “屏”的文本模式“电影”记录您的整个会话的注销标准输出
  3. “三通”用于记录单个命令
+0

“screen -L”接近,但不能通过控制序列启动/停止。但是,它可能会尽可能接近我可以得到... – 2008-10-08 21:07:49