题
我发誓 X 中曾经有一种方法可以开始将所有终端流量捕获到主机上的文件中。它可能是蜂鸟的扩展,但我认为它是标准的。现在我找不到窍门了。我是产生了幻觉(当你变老时就会发生),还是有可能?
我不是在谈论“T恤”。我希望能够将 xterm 控制序列发送到 stdout,给出文件名,并将窗口中显示的所有内容从那时起保存到文件中(直到发出书挡取消)。
解决方案
此功能称为日志记录,存在于源代码中,但出于安全原因,默认情况下处于禁用状态。您是否真的希望每个人都能够将控制序列写入您的终端(例如,您可能有一天 cat
的任何文件的作者)能够写入任意数据在您的帐户下任意命名的文件?
例如,攻击者可以轻松使用此功能修改〜/ .ssh / authorized_keys
以授予攻击者访问权限,并将〜/ .profile
更改为用您的IP地址ping攻击者。
那就是说,如果用 - enable-logging
和 #define ALLOWLOGFILECHANGES
编译xterm,那么根据 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
。
还可以选择启用管道记录,如果允许通过控制序列更改记录器,这也是非常危险的。这也可以让任何人在你的系统上执行他们的代码。
其他提示
问题比较模糊。
尝试看看:
- “ttyrec/ttyplay”用于录制终端会话的文本模式“电影”
- 用于记录整个会话的注销标准输出的“屏幕”
- “tee”用于记录单个命令的标准输出/标准错误
我对你提出问题的方式感到有点困惑。首先你提到Xterm然后是X然后是终端,你只是想找到“tee”吗? ( man tee
)命令?
不隶属于 StackOverflow