Последовательность управления Xterm для вывода 'T' в файл

StackOverflow https://stackoverflow.com/questions/184853

  •  06-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

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

Тем не менее, если вы компилируете xterm с помощью - enable-logging И вы #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 .

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

Другие советы

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

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

<Ол> <Литий> & Quot; ttyrec / ttyplay & Quot; для записи в текстовом режиме «фильм» вашего терминального сеанса <Литий> & Quot; Экран & Quot; для записи стандартного выхода из всего сеанса <Литий> & Quot; тройник & Quot; для записи stdout / stderr одной команды

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top