Enregistrer en temps réel l'historique des commandes exécutés dans un shell avec la date et l'heure et sans limite de taille. Ceci s'applique à tous les utilisateurs de la machine.
En root, dans le dossier /etc/profile.d crée un fichier history.sh et mets ça dedans:
# Historique illimité avec hordoratage
# Copier ce fichier dans /etc/profile.d
# Historique illimité, il suffit de ne pas donner de taille (en octets) de fichier:
HISTFILESIZE=
HISTSIZE=
# Historique avec la date:
HISTTIMEFORMAT='%F %T %t'
# Logguer l'historique de multiples sessions, cas où l'utilisateur ouvre plusieurs sessions en même temps.
# L'écriture dans le fichier se fait à chaque commande.
shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
Pour tester si ça fonctionne, lance un tail -f ~/.bash_history et ouvre un autre terminal.
Il ne doit pas y avoir d'erreurs du type "commande introuvable" ou tout autre message inhabituel dans le terminal.
Exécute quelques commandes (exemple: uptime; cd; ls; etc...). Lors de l'appui sur [ENTER] la commande doit aussitôt apparaître dans l'autre terminal où il y a le "tail -f".
L'enregistrement de la commande se fait après son exécution. Par exemple, tu est connecté en ssh, tu ouvres un fichier avec vim et tu as une déconnexion réseau, la commande qui t'a permis d'ouvrir le fichier ne sera pas enregistrée dans l'historique. La commande vim sera enregistrée au moment où tu quitteras vim et reviendra sur le shell.