Pergunta

Eu juro que costumava haver uma forma em X para começar a capturar todo o tráfego de terminal para um arquivo no seu host. Pode ter sido uma extensão HummingBird, mas eu pensei que era normal. Agora, eu não posso encontrar o truque. Am I alucinante (acontece quando você ficar velho), ou é possível?
Eu não estou falando sobre 'tee'. Eu quero ser capaz de enviar um controle de seqüência xterm para stdout, dando um nome de arquivo, e tem Everthing mostrada na janela a partir desse momento em diante salvos no arquivo (até o bookend cancelamento é emitido).

Foi útil?

Solução

Este recurso é chamado de registro e existe no código fonte, mas está desativado por padrão por razões de segurança. Você realmente quer todo mundo com a capacidade de seqüências de controle de gravação para o seu terminal ( ex , o autor de qualquer arquivo que você possa um cat dia) para ser capaz de gravar dados arbitrários para arquivos com nomes arbitrários sob o seu conta?

Por exemplo, um invasor pode facilmente usar esta funcionalidade para modificar seu ~/.ssh/authorized_keys para conceder o acesso atacante, e mudar sua ~/.profile o ping do atacante com o seu endereço IP.

Dito isto, se você compilar xterm com --enable-logging e você #define ALLOWLOGFILECHANGES, em seguida, de acordo com a Manual de Controle seqüências xterm , você terá acesso aos seguintes sequências de controle:

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

O nome do arquivo de log por padrão será chamado Xterm.log.hostname.yyyy.mm.dd.hh.mm.ss.XXXXXX.

Há também uma opção para habilitar o registro através de um tubo, que também é muito perigoso se você permitir mudar o logger através de sequências de controle. Isso também permitiria que qualquer pessoa para executar seu código em seu sistema.

Outras dicas

A pergunta é um pouco vaga.

Tente olhar em:

  1. "ttyrec / ttyplay" para a gravação de um "filme" de modo texto de sua sessão de terminal
  2. "tela" para gravar um log out stdout de toda a sua sessão
  3. "tee" para gravar um stdout / stderr de um único comando

Estou um pouco confuso com a maneira que você pediu a sua pergunta. Primeiro você menciona Xterm então X e depois terminal, você está simplesmente olhando para o "tee" de comando (man tee)?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top