X には、すべてのターミナル トラフィックをホスト上のファイルにキャプチャし始める方法があったことを誓います。HummingBird の拡張機能だったのかもしれませんが、標準だと思いました。今、私はトリックを見つけることができません。私は幻覚を起こしていますか (年をとったときに起こります)、それとも可能ですか?
私は「ティー」について話しているのではありません。xterm 制御シーケンスを stdout に送信し、ファイル名を指定して、それ以降のウィンドウに表示されるすべてのものをファイルに保存できるようにしたい (ブックエンド キャンセルが発行されるまで)。
3 に答える
この機能はロギングと呼ばれ、ソース コードに存在しますが、セキュリティ上の理由からデフォルトで無効になっています。あなたの端末に制御シーケンスを書き込むことができるすべての人 (たとえば、あなたがいつかファイルを作成した人cat
) が、あなたのアカウントで任意の名前のファイルに任意のデータを書き込めるようにしたいですか?
たとえば、攻撃者はこの機能を簡単に使用して~/.ssh/authorized_keys
、攻撃者にアクセスを許可するように を変更~/.profile
し、IP アドレスで攻撃者に ping を実行するように変更することができます。
そうは言っても、--enable-logging
AND you を使用して xterm をコンパイルすると、 Xterm Control Sequences#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
.
パイプを介してロギングを有効にするオプションもありますが、これも制御シーケンスを介してロガーを変更できるようにする場合は非常に危険です。これにより、誰でもシステム上で自分のコードを実行できるようになります。
質問はかなりあいまいです。
見てみてください:
- 端末セッションのテキストモード「ムービー」を記録するための「ttyrec/ttyplay」
- セッション全体のログアウト標準出力を記録するための「画面」
- 単一コマンドの stdout/stderr を記録するための「tee」
あなたの質問の仕方に少し混乱しています。man tee
最初に Xterm、次に X、次に端末について言及していますが、単純に「ティー」( ) コマンドを探しているのですか?