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

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

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


person Community    schedule 08.10.2008    source источник


Ответы (3)


Эта функция называется ведением журнала и существует в исходном коде, но по умолчанию отключена из соображений безопасности. Вы действительно хотите, чтобы все, кто может записывать управляющие последовательности на ваш терминал (например,, автор любого файла, который вы когда-нибудь 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.

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

person Community    schedule 17.04.2009
comment
Подозреваю это... Я не буду ставить под угрозу безопасность xterm только для того, чтобы получить эту маленькую выгоду. Я перешел к двухуровневой схеме сценариев, в которой полная регистрация внутреннего сценария является опцией, предоставляемой внешнему сценарию. Спасибо! - person Kevin Little; 18.04.2009
comment
Чтобы построить xterm-314 с управлением escape-последовательностью ведения журнала, вам нужно настроить с помощью --enable-logging и отредактировать полученный Makefile, чтобы установить EXTRA_CFLAGS = -DALLOWLOGFILEONOFF. - person garyjohn; 21.01.2015

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

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

  1. «ttyrec/ttyplay» для записи текстового «фильма» вашего терминального сеанса.
  2. «Экран» для записи выхода из системы на весь сеанс
  3. «тройник» для записи stdout/stderr одной команды
person ADEpt    schedule 08.10.2008
comment
screen -L закрыт, но его нельзя запустить/остановить с помощью управляющих последовательностей. Но, может быть, это будет настолько близко, насколько я смогу... - person Kevin Little; 09.10.2008

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

person André    schedule 08.10.2008
comment
Спасибо за отзыв - вопрос отредактирован и улучшен, я надеюсь. - person Kevin Little; 09.10.2008