4

supprimer ou bloquer l’historique des commandes éxécutées dans un terminal

Dans certain cas, il est intéressant de supprimer voire même de bloquer l’historique des commandes éxécutées dans un terminal.

Exemple d’un cas concret, si à partir d’un serveur samba on veut se connecter à un autre serveur samba, lors de la connection il est obliger de renseigner un compte valide avec son mot de passe en clair:

smbclient //serveur_samba/ MDP_en_CLAIR -U Login -L serveur_samba

La première méthode très simple serait de supprimer l’historique via la commande:

history -c

Cependant cette commande, peut avoir un petit défaut: c’est qu’elle supprime TOUT l’historique!

Il existe une autre méthode, qui va permettre de ne pas enregistrer l’historique des commandes éxécutées dans le shell courant, mais toujours présent en RAM.
Pour se faire, il faut utiliser la commande shell: unset suivit de la variable d’environnement HISTFILE.
En reprennant notre exemple, il suffit d’éxécuter cette commande avant:

unset HISTFILE

Lorsque que le session sera fermée et de nouveau ouverte, la commande smbclient //serveur_samba/ MDP_en_CLAIR -U Login -L serveur_samba ne sera pas enregistrée dans l’historique.

Encore une fois, ça peut être assez lourd car si l’on souhaite enregistrer les autres commandes il faut se reconnecter. Il existe une autre solution, qui pour moi est la plus simple, est d’ajouter un espace avant la commande à exécuter.

Pour que cette astuce fonctionne, il faut vérifier dans le fichier de configuration ~/.bashrc la présence de cette ligne:

export HISTCONTROL=ignorespace

Si cette ligne n’est pas présente, il faut l’ajouter.

Chaque commande précédée d’un espace ne sera plus enregistrée dans l’historique.

Merci à Frédéric Touin pour l’astuce.

Partager l'article :





fred

"Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

4 commentaires

  1. Hello,

    C’est difficile de te lire cette fois-ci, tu ne t’es pas relu ! lol
    intéressent de supprimer voir –> intéressant de supprimer voire
    connection –> connexion
    il est obliger –> il est obligé
    il exite une autre –> il existe
    Pour ce faire –> Pour se faire
    On reprennant –> En reprenant
    cette comamnde avant –> cette commande avant
    Lorsque que le session –> lol
    qui moi est la plus –> qui pour moi

    Si ça peut servir à quelqu’un, j’ai dans mon .bashrc :
    # Activation date et heure dans la commande history
    HISTTIMEFORMAT= »[%d/%m/%Y %T]  »

    # Ne pas laisser de trace dans .bash_history pour certaines commandes. [ t]* consiste à mettre un espace puis taper la commande, cette commande ne figurera pas dans .bash_history
    export HISTIGNORE= »[ t]*:history:exit:firefox »

  2. Pour rappel, on n’est pas obligé de se déconnecter pour recharger la configuration de .bashrc, il suffit de faire : source ~/.bashrc

  3. Salut Cascador!

    Merci pour les corrections et pour le complément d’information :-)
    Effectivement sur ce coup, je fus très mauvais…

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *