我发誓在 X 中曾经有一种方法可以开始将所有终端流量捕获到主机上的文件中。它可能是 HummingBird 的扩展,但我认为它是标准的。现在,我找不到诀窍了。我是幻觉(当你变老时发生),还是有可能?
我不是在谈论“三通”。我希望能够向标准输出发送一个 xterm 控制序列,给出一个文件名,并从那时起将窗口中显示的所有内容保存到文件中(直到发出书挡取消)。
Kevin Little
问问题
2250 次
3 回答
3
此功能称为日志记录并存在于源代码中,但出于安全原因默认禁用。您是否真的希望每个能够将控制序列写入您的终端的人(例如,您可能有一天会编写任何文件的作者cat
)都能够将任意数据写入您帐户下的任意命名的文件?
例如,攻击者可以轻松地使用此功能修改您~/.ssh/authorized_keys
以授予攻击者访问权限,并更改您~/.profile
以使用您的 IP 地址 ping 攻击者。
也就是说,如果您使用--enable-logging
AND 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
问题比较模糊。
尝试查看:
- “ttyrec/ttyplay”用于录制终端会话的文本模式“电影”
- 用于记录整个会话的注销标准输出的“屏幕”
- "tee" 用于记录单个命令的标准输出/标准错误
于 2008-10-08T21:01:54.907 回答
0
我对你问问题的方式有点困惑。首先你提到 Xterm 然后 X 然后是终端,你只是在寻找“tee”(man tee
)命令吗?
于 2008-10-08T20:57:46.163 回答