Domanda

Giuro che c'era un modo in X per iniziare a catturare tutto il traffico del terminale su un file sul tuo host. Potrebbe essere stata un'estensione HummingBird, ma ho pensato che fosse standard. Ora, non riesco a trovare il trucco. Sto allucinando (succede quando invecchi), o è possibile?

Non sto parlando di "tee". Voglio essere in grado di inviare una sequenza di controllo xterm a stdout, dando un nome al file, e tutto ciò che viene mostrato nella finestra da quel momento in poi salvato nel file (fino a quando non viene emesso l'annullamento del fermalibri).

È stato utile?

Soluzione

Questa funzione si chiama registrazione ed esiste nel codice sorgente ma è disabilitata di default per motivi di sicurezza. Vuoi davvero che chiunque abbia la possibilità di scrivere sequenze di controllo sul tuo terminale ( ad esempio , l'autore di qualsiasi file che potresti un giorno cat ) sia in grado di scrivere dati arbitrari file arbitrariamente nominati nel tuo account?

Ad esempio, un utente malintenzionato può facilmente utilizzare questa funzionalità per modificare il ~ / .ssh / authorized_keys per concedere l'accesso all'attaccante e cambiare il ~ / .profile in ping l'attaccante con il tuo indirizzo IP.

Detto questo, se compili xterm con --enable-logging E tu #define ALLOWLOGFILECHANGES , allora secondo Manuale delle sequenze di controllo Xterm , avrai accesso alle seguenti sequenze di controllo:

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

Il nome del file di registro verrà chiamato per impostazione predefinita Xterm.log.hostname.yyyy.mm.dd.hh.mm.ss.XXXXXX .

C'è anche un'opzione per abilitare il logging attraverso una pipe, che è anche molto pericoloso se si consente di cambiare il logger tramite sequenze di controllo. Ciò consentirebbe inoltre a chiunque di eseguire il proprio codice sul proprio sistema.

Altri suggerimenti

La domanda è piuttosto vaga.

Prova a guardare:

  1. " ttyrec / ttyplay " per la registrazione di un filmato in modalità testo " della tua sessione terminale
  2. " schermo " per la registrazione di uno stdout di logout dell'intera sessione
  3. " tee " per registrare uno stdout / stderr di un singolo comando

Sono un po 'confuso dal modo in cui hai posto la tua domanda. Prima menzioni Xterm, poi X e poi il terminale, stai semplicemente cercando il "tee" ( man tee ) comando?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top