#1 Le 09/10/2009, à 18:13
- Zakhar
[Résolu] Comment ne pas enregistrer une commande ?
Bonjour,
pour des raisons de confidentialité, est-il possible, lorsqu'on le décide, de ne pas enregistrer les commandes tapées à la console ?
Je veux dire cesser totalement l'enregistrement, sinon bien sûr, on peut par exemple supprimer/modifer le ~/.history, mais les lignes auront été écrites, laissant potentiellement des traces sur le disque dur. Donc l'utilisation de
history -c
ne répond pas au besoin (car en plus on perd tout l'historique, même des commandes "non confidentielles").
La solution de mettre ~/.history sur un disque mémoire... si c'est possible... fait perdre totalement la fonction d'enregistrement des commandes dès qu'on redémarre le PC, et ce n'est donc pas une solution qui me convient.
Non, en réalité ce que j'aimerais c'est un moyen fiable d'arrêter l'enregistrement à un moment donné, exemple
$#Ceci sont des commandes enregistrées
$cd Images
$ls -l
(...)
$#A partir d'ici on ne veut plus enregistrer car on va taper des commandes "confidentielles"
$history --stop
$confidential -1
$confidential -2
(...)
$#Commande confidentielles finies, on peut reprendre l'enregistrement
$history --start
$pwd
Bien sûr, j'ai "inventé" history --stop/start
Mais en gros c'est ce que j'imaginerai.
Dernière modification par Zakhar (Le 09/10/2009, à 19:14)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#2 Le 09/10/2009, à 18:16
- zapple
Re : [Résolu] Comment ne pas enregistrer une commande ?
unset HISTFILE
Hors ligne
#3 Le 09/10/2009, à 19:07
- Zakhar
Re : [Résolu] Comment ne pas enregistrer une commande ?
Merci zapple
Humm... ça fait quoi au juste ça... (se plonge dans le man).
Et ensuite je reset la variable d'environnement à sa valeur d'origine ?..
[Edit] Cool ça marche !
En fait
echo $HISTFILE
me donne visiblement le nom du fichier dans lequel les commandes s'enregistrent.
Visiblement aussi, tant qu'on n'a pas fermé la console, il semble continuer à enregistrer les commandes (en mémoire) car on peut les rejouer.
Mais lorsqu'on ferme la console, on s'aperçoit qu'il n'a plus rien enregistré au delà du unset !
Pour recommencer à enregistrer, la manipulation la plus rapide est de fermer la console en cours et d'en réouvrir une nouvelle !
Exactement ce que je voulais donc => résolu, et encore merci
Petit détail... en réalité puisque la console continue à enregistrer (en RAM/tmp ?) il faudrait pour faire complet -et parano- crypter le swap (au cas où...) puisque mon /tmp, lui, est déjà en RAM.
Dernière modification par Zakhar (Le 09/10/2009, à 19:15)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#4 Le 10/10/2009, à 15:42
- xamaco
Re : [Résolu] Comment ne pas enregistrer une commande ?
Dans les versions de Bash récentes, on peut faire en sorte qu'une commande ne soit pas mise dans l'historique des commandes en la faisant précéder par un espace.
ls /tmp #sera dans l'historique
ls /tmp #ne sera pas dans l'historique.
Si ça ne marche pas, on peut le faire en ajoutant [ \t]* à la variable HISTIGNORE.
Exemple dans un .bashrc :
export HISTIGNORE="[ \t]*"
Hors ligne
#5 Le 10/10/2009, à 16:06
- zapple
Re : [Résolu] Comment ne pas enregistrer une commande ?
Petit détail... en réalité puisque la console continue à enregistrer (en RAM/tmp ?) il faudrait pour faire complet -et parano- crypter le swap (au cas où...) puisque mon /tmp, lui, est déjà en RAM.
Si tu es parano à ce point ^^, installe secure-delete qui contient les outils suivants :
1. srm (Secure remove) : utilisé pour supprimer de manière sécurisée des fichiers ou des répertoires de votre disque dur en rajoutant des zéros et des uns, ainsi que des valeurs spéciales chiffrées pour rendre VRAIMENT les données non récupérables.
srm fichier
srm -r dossier
2. smem (Secure Memory Wiper) : utilisé pour effacer les données et autres traces contenues dans la mémoire RAM
smem
3. sfill (Secure Free Space Wiper) : utilisé pour effacer toutes les traces conservées dans l’espace libre des disques durs. Ca ne formate pas les disques durs, précisons-le.
sfill /répertoire
4. sswap : Secure Free Space Wiper, utilisé pour nettoyer toutes les traces de la partition swap. Avant d’utiliser le soft, il faut démonter la partition swap. Localiser l’emplacement de la swap avec un :
cat /proc/swaps
Ensuite, il faut la désactiver :
sudo swapoff /dev/sdaX
Ceci fait, on peut nettoyer avec la commande sswap :
sudo sswap /dev/sdaX
Une fois que c’est fini, il faut réactiver la swap avec la commande suivante :
sudo swapon /dev/sdaX
Dernière modification par zapple (Le 10/10/2009, à 16:08)
Hors ligne
#6 Le 10/10/2009, à 16:32
- Zakhar
Re : [Résolu] Comment ne pas enregistrer une commande ?
Dans les versions de Bash récentes, on peut faire en sorte qu'une commande ne soit pas mise dans l'historique des commandes en la faisant précéder par un espace.
Ca marche parfaitement !
Merci pour cette seconde astuce encore plus rapide si on a juste deux ou trois commandes à "cacher"
Et merci aussi zapple pour les outils "spéciaux parano" !
Dernière modification par Zakhar (Le 10/10/2009, à 16:33)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#7 Le 10/10/2009, à 17:24
- zapple
Re : [Résolu] Comment ne pas enregistrer une commande ?
Il y a aussi :
kill -9 $$
à taper avant de fermer ton terminal. Tes commandes ne seront pas sauvegardées dans l'historique.
Hors ligne