BASH – Rajouter la date dans l’historique des commandes
Après avoir eu un serveur de piraté j’ai pu voir les commande qu’avait passé le pirate, sans pouvoir savoir exactement quand il les avait utilisées (Il n’avait pas nettoyé l’historique). J’ai donc cherché sur Internet une solution sans trouver grand chose pour Bash.
Cette modification est totalement anodine pour le système et ne peut entraîner de perte de donnée.
Après avoir acheter un livre sur Bash j’ai trouvé mon bonheur. Il faut absolument avoir la version 3.0 ou plus de bash. Ubuntu Dapper Drake et les version suivante intègre d’office une version supérieur à la 3.0.
motarion@cyber-workstation:~$ bash --version
GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.
Pour activer la date dans l’historique il suffit de lancer la commande suivante:
export HISTTIMEFORMAT="%Y/%m/%d @ %T "
Voici le résultat:
456 2009/04/18 @ 13:58:32 ping free.fr
457 2009/04/18 @ 13:58:35 ls
458 2009/04/18 @ 13:58:48 spas
459 2009/04/18 @ 13:58:55 history
Attention: cette modification n’est pas persistente et si vous fermez le SHELL actuel la modification sera perdue!
Pour rendre cette modification persistente il y a deux solutions:
- Modifier le fichier .bashrc de chaque utilisateur
- Modifier la configuration Globale de Bash
I – Pour la première solution, il faut savoir que les nouveaux utilisateur ne profiteront pas de la modification. Si vous êtes le seul à vous connecter dans ce cas c’est la solution la plus simple. Lancez l’éditeur de texte que vous préférez puis copier la ligne suivante en fin de fichier:
export HISTTIMEFORMAT="%Y/%m/%d @ %T "
Édition du fichier:
nano .bashrc
II – La seconde solution permet de l’activer pour tout le système, même pour les nouveaux utilisateurs:
sudo nano /etc/bash.bashrc
Puis copiez en fin de fichier la commande suivante:
HISTTIMEFORMAT="%Y/%m/%d @ %T "
Vous pourrez alors constater que la modification est active pour tous les nouveaux Shell que vous ouvrirez.
PS: Cette astuce fonctionne aussi sur Debian depuis la version Etch bien que le chemin de configuration de bash puisse changer.