Последовательность управления Xterm для вывода 'T' в файл - PullRequest
0 голосов
/ 09 октября 2008

Клянусь, раньше в X был способ начать захват всего трафика терминала в файл на вашем хосте. Возможно, это было расширение HummingBird, но я подумал, что оно стандартное. Теперь я не могу найти трюк. Я галлюцинирую (случается, когда ты стареешь), или это возможно?

Я не говорю о "тройнике". Я хочу иметь возможность отправлять контрольную последовательность xterm в stdout, указав имя файла, и с этого момента в окне будет отображаться все, что угодно, до тех пор, пока не будет выполнена отмена форзаца).

Ответы [ 3 ]

3 голосов
/ 17 апреля 2009

Эта функция называется ведением журнала и существует в исходном коде, но отключена по умолчанию из соображений безопасности. Вы действительно хотите, чтобы все, кто имеет возможность записывать управляющие последовательности в ваш терминал (, например, , автор любого файла, которого вы могли бы однажды cat), могли бы записывать произвольные данные в файлы с произвольными именами в Ваш аккаунт?

Например, злоумышленник может легко использовать эту функцию, чтобы изменить ваш ~/.ssh/authorized_keys, чтобы предоставить злоумышленнику доступ, и изменить ваш ~/.profile для проверки связи с вашим IP-адресом.

Тем не менее, если вы скомпилируете xterm с помощью --enable-logging AND you #define ALLOWLOGFILECHANGES, то в соответствии с руководством Xterm Control Sequence вы получите доступ к следующим последовательностям управления:

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

Имя файла журнала по умолчанию будет называться Xterm.log.hostname.yyyy.mm.dd.hh.mm.ss.XXXXXX.

Существует также опция, позволяющая включить регистрацию через канал, что также очень опасно, если вы разрешаете изменять регистратор с помощью управляющих последовательностей. Это также позволит любому исполнить свой код в вашей системе.

1 голос
/ 09 октября 2008

Вопрос довольно расплывчатый.

Попробуйте посмотреть на:

  1. "ttyrec / ttyplay" для записи текстового режима "фильма" вашей терминальной сессии
  2. «экран» для записи стандартного выхода из сеанса всего сеанса
  3. "тройник" для записи stdout / stderr одной команды
0 голосов
/ 09 октября 2008

Я немного смущен тем, как вы задали свой вопрос. Сначала вы упоминаете Xterm, затем X, а затем терминал, вы просто ищете команду "tee" (man tee)?

...