Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 wink

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 ?

Zakhar a écrit :

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 ?

xamaco a écrit :

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" wink

Et merci aussi zapple pour les outils "spéciaux parano" ! wink

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