Последовательность управления Xterm для вывода 'T' в файл
Вопрос
Клянусь, раньше в 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
) команда? Р>