Après avoir lu les autres réponses et examiné le problème moi-même, j'ai observé un certain comportement du système de fichiers, ce qui implique une solution très simple. Le programme du terminal stocke ses données dans
~/Library/Saved Application State/com.apple.Terminal.savedState/
comme indiqué ci-dessus. Lorsque je quitte l'application Terminal (proprement), ce dossier est entièrement supprimé. La raison pour laquelle l'OP obtient des données restaurées est qu'il fait planter l'application Terminal avec killall
. J'ai observé cela en ouvrant le finder au Saved Application State
et de démarrer et quitter le terminal. L'inconvénient de cette méthode est que vous devez fermer TOUTES les fenêtres du terminal, mais de cette façon, tous les états sauvegardés semblent être effacés (à moins que vous ne fassiez des recherches sur le disque, bien sûr).
Il semble qu'il y ait un fichier dans ce répertoire pour chaque fenêtre de terminal ouverte (mais pas pour chaque onglet !) plus data.data et Windows.plist et window_1.data
qui représente vraisemblablement le programme du terminal lui-même. Les fichiers per-terminal disparaissent à la fermeture de la fenêtre, mais le fichier data.data est celui qui grandit au fur et à mesure que des commandes sont émises et qui stocke donc probablement le tampon de retour en arrière. Il ne se réduit pas à la fermeture de la fenêtre du terminal, ce qui implique qu'il continue à contenir les données de retour de défilement. Le site data.data
se rétrécit toutefois à l'ouverture de la fenêtre de terminal suivante. Il rétrécit également de manière drastique lorsqu'une autre fenêtre de terminal est mise à jour (en appuyant sur la touche retour par exemple). Il semble donc que la routine suivante effacera (probablement) complètement les données du scrollback :
- Fermez proprement la fenêtre contenant les données sensibles (par exemple le point rouge),
command + w
)
- Ouvrir une nouvelle fenêtre de terminal OU provoquer le défilement dans une autre fenêtre de terminal déjà ouverte.
ou
- Fermer proprement toute l'application du terminal (Commande + q etc.)
Il convient également de noter que le data.data
n'est pas un fichier texte. C'est un fichier binaire dont l'interprétation demandera un effort. Je pense que les données sont comprimées d'une manière ou d'une autre. Un simple cat
du dossier ne révèle rien de lisible. Donc, pour que ces fichiers soient une vulnérabilité, il semble que les deux éléments suivants doivent être vrais :
- Le terminal est mort et
NSQuitAlwaysKeepsWindows
est vrai (voir autre réponse), ou la fenêtre du terminal a été fermée et aucune autre fenêtre n'a été ouverte ou mise à jour.
- L'attaquant est suffisamment sophistiqué pour savoir ce qu'il faut rechercher et savoir comment décoder le fichier data.data.
VEUILLEZ NOTER : ce qui précède est entièrement basé sur l'observation de la manière dont les fichiers apparaissent/disparaissent et dont leur taille change. Il est bien sûr toujours possible que certaines informations partielles soient conservées si la maintenance de l'application data.data
Le dossier est bâclé. Toutefois, ces observations me semblent suffisantes. Décidez par vous-même si elles sont suffisantes pour vous.
Ces observations proviennent de OS X 10.9.5 et de la version 2.4 (326) de Terminal. Veuillez vérifier le comportement décrit ci-dessus si vous utilisez une autre version avant de vous fier à ces conseils. Tout ou partie de ces observations pourrait changer avec les nouvelles versions de Terminal ou de Mac OSX.