Séquence de contrôle Xterm vers 'T' sortie dans un fichier
Question
Je jure qu’il y avait un moyen dans X de commencer à capturer tout le trafic du terminal dans un fichier sur votre hôte. C'était peut-être une extension HummingBird, mais je pensais que c'était standard. Maintenant, je ne trouve pas le truc. Est-ce que je hallucine (ça se passe quand on vieillit), ou est-ce possible?
Je ne parle pas de 'tee'. Je veux pouvoir envoyer une séquence de contrôle xterm à stdout, en donnant un nom de fichier, et tout s'affiche dans la fenêtre à partir de ce moment-là, sauvegardé dans le fichier (jusqu'à ce que l'annulation de fin de livre soit émise).
La solution
Cette fonctionnalité s'appelle la journalisation et existe dans le code source mais est désactivée par défaut pour des raisons de sécurité. Voulez-vous vraiment que tous ceux qui ont la possibilité d'écrire des séquences de contrôle sur votre terminal ( par exemple , l'auteur de tout fichier que vous pourriez un jour cat
) puissent écrire des données arbitraires des fichiers nommés arbitrairement sous votre compte?
Par exemple, un attaquant pourrait facilement utiliser cette fonctionnalité pour modifier votre ~ / .ssh / registered_keys
afin d'accorder l'accès à l'attaquant, et modifier votre ~ / .profile
en envoyez une requête ping à l’attaquant avec votre adresse IP.
Cela dit, si vous compilez xterm avec - enable-logging
ET vous #define ALLOWLOGFILECHANGES
, puis selon le Séquences de contrôle Xterm , vous aurez accès aux séquences de contrôle suivantes:
^[[?46h Start logging
^[[?46l Stop logging
^[]46;filename\007 Change log file to `filename`
Le nom du fichier journal sera par défaut appelé Xterm.log.nomhôte.aaaa.mm.dd.hh.mm.ss.XXXXXX
.
Il existe également une option permettant d'activer la journalisation via un tuyau, ce qui est également très dangereux si vous autorisez la modification de l'enregistreur via des séquences de contrôle. Cela permettrait également à quiconque d’exécuter son code sur votre système.
Autres conseils
La question est plutôt vague.
Essayez de regarder:
- " ttyrec / ttyplay " pour enregistrer un "film" en mode texte de votre session de terminal
- " écran " pour enregistrer une sortie standard de votre session entière
- " tee " pour enregistrer un stdout / stderr d’une seule commande
Je suis un peu dérouté par la façon dont vous avez posé votre question. D'abord, vous mentionnez Xterm, puis X, puis terminal, cherchez-vous simplement le "tee"? ( man tee
) commande?