Pregunta

Juro que solía haber una forma en X para comenzar a capturar todo el tráfico de la terminal a un archivo en su host. Puede haber sido una extensión de HummingBird, pero pensé que era estándar. Ahora, no puedo encontrar el truco. ¿Estoy alucinando (sucede cuando envejeces), o es posible?

No estoy hablando de 'tee'. Quiero poder enviar una secuencia de control xterm a stdout, dando un nombre de archivo, y todo se muestra en la ventana desde ese momento en adelante guardado en el archivo (hasta que se emita la cancelación del sujetalibros).

¿Fue útil?

Solución

Esta función se llama registro y existe en el código fuente, pero está deshabilitada de forma predeterminada por razones de seguridad. ¿Realmente desea que todos los que tengan la capacidad de escribir secuencias de control en su terminal ( p. Ej. , el autor de cualquier archivo que algún día cat ) puedan escribir datos arbitrarios a archivos nombrados arbitrariamente en su cuenta?

Por ejemplo, un atacante podría usar fácilmente esta funcionalidad para modificar su ~ / .ssh / Authorizedkeys para otorgarle acceso al atacante y cambiar su ~ / .profile a haga ping al atacante con su dirección IP.

Dicho esto, si compila xterm con --enable-logging Y usted #define ALLOWLOGFILECHANGES , entonces de acuerdo con Xterm Control Sequences , obtendrá acceso a las siguientes secuencias de control:

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

El nombre del archivo de registro se llamará por defecto Xterm.log.hostname.yyyy.mm.dd.hh.mm.ss.XXXXXX .

También hay una opción para habilitar el registro a través de una tubería, que también es muy peligroso si permite cambiar el registrador mediante secuencias de control. Eso también permitiría a cualquiera ejecutar su código en su sistema.

Otros consejos

La pregunta es bastante vaga.

Intenta mirar:

  1. & t; ttyrec / ttyplay " para grabar una película de modo de texto '' de su sesión de terminal
  2. " pantalla " para grabar un stdout de cierre de sesión de toda su sesión
  3. " tee " para grabar un stdout / stderr de un solo comando

Estoy un poco confundido por la forma en que hiciste tu pregunta. Primero mencionas Xterm, luego X y luego terminal, ¿simplemente estás buscando el "tee"? ( man tee ) comando?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top