Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Sauvegarder l'historique des commandes sous Linux.

Par Guillaume DI FRANCESCO Publié le 22/02/2017 à 20:24:21 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Lors des tâches d'administration de serveur sous Linux, il est possible que l'on veuille récupérer l'historique des commandes Linux exécutées par un utilisateur ; que ce soit pour réparer une erreur ou alors documenter une procédure.

Si la commande "history" est disponible sur de nombreuses distributions, celle-ci n'est pas exempte de tous défauts. Dans cette situation, nous allons voir commander installer et utiliser le paquet "snoopy" permettant de conserver chaque commande exécutée sur le serveur, que ce soit de manière locale ou via un shell distant, via ssh.

Pour cet article, considérons un simple serveur Apache tournant sous Debian 8.

Installation & utilisation de Snoopy.

Commençons par l'installation de Snoopy.

  • Installation du paquet Snoopy.

    [email protected]:~# apt-get install snoopy
    Lecture des listes de paquets... Fait
    Construction de l'arbre des dépendances
    Lecture des informations d'état... Fait
    Les NOUVEAUX paquets suivants seront installés :
      snoopy
    0 mis à jour, 1 nouvellement installés, 0 à enlever et 0 non mis à jour.
    Il est nécessaire de prendre 14,6 ko dans les archives.
    Après cette opération, 24,6 ko d'espace disque supplémentaires seront utilisés.
    Réception de : 1 http://ftp.fr.debian.org/debian/ jessie/main snoopy amd64 1.8.0-5 [14,6 kB]
    14,6 ko réceptionnés en 0s (75,6 ko/s)
    Préconfiguration des paquets...
    Sélection du paquet snoopy précédemment désélectionné.
    (Lecture de la base de données... 31716 fichiers et répertoires déjà installés.)
    Préparation du dépaquetage de .../snoopy_1.8.0-5_amd64.deb ...
    Dépaquetage de snoopy (1.8.0-5) ...
    Paramétrage de snoopy (1.8.0-5) ...

L'installation de snoopy est désormais terminée ; il est désormais temps de tester ce paquet.

Pour voir le bon fonctionnement de ce paquet, nous allons exécuter des commandes simples puis vérifier dans le fichier de log si ces commandes ont bien été récupérées.

Lançons plusieurs commandes :

[email protected]:~# hostname
adm01
[email protected]:~# date
mercredi 22 février 2017, 20:08:17 (UTC+0100)
[email protected]:~# ls /var/tmp/
test.sh
[email protected]:~# cd /var/tmp
[email protected]:/var/tmp# chmod +x test.sh
[email protected]:/var/tmp# bash test.sh
This is a test script. Welcome!
[email protected]:/var/tmp# rm test.sh
[email protected]:/var/tmp# systemctl status apache2
[email protected]:/var/tmp# cat /var/log/messages

Nous allons maintenant vérifier dans notre fichier de log pour voir si tout a bien été loggé. Affichons le fichier /var/log/auth.log

[email protected]:~# cat /var/log/auth.log
Feb 22 20:08:16 adm01 snoopy[3284]: [uid:0 sid:3235 tty:/dev/pts/1 cwd:/root filename:/bin/hostname]: hostname
Feb 22 20:08:17 adm01 snoopy[3285]: [uid:0 sid:3235 tty:/dev/pts/1 cwd:/root filename:/bin/date]: date
Feb 22 20:08:21 adm01 snoopy[3288]: [uid:0 sid:3235 tty:/dev/pts/1 cwd:/root filename:/bin/ls]: ls /var/tmp/
Feb 22 20:08:29 adm01 snoopy[3291]: [uid:0 sid:3235 tty:/dev/pts/1 cwd:/var/tmp filename:/bin/chmod]: chmod +x test.sh
Feb 22 20:08:35 adm01 snoopy[3294]: [uid:0 sid:3235 tty:/dev/pts/1 cwd:/var/tmp filename:/bin/bash]: bash test.sh
Feb 22 20:08:39 adm01 snoopy[3295]: [uid:0 sid:3235 tty:/dev/pts/1 cwd:/var/tmp filename:/bin/rm]: rm bash.sh
Feb 22 20:08:53 adm01 snoopy[3296]: [uid:0 sid:3235 tty:/dev/pts/1 cwd:/var/tmp filename:/bin/systemctl]: systemctl status apache2
Feb 22 20:09:04 adm01 snoopy[3299]: [uid:0 sid:3235 tty:/dev/pts/1 cwd:/var/tmp filename:/bin/cat]: cat /var/log/messages

Analysons la première ligne de ce fichier. On peut donc y retrouver principalement :

  • tty: : Le terminal utilisé, si c'est en local en à distance.

  • cwd: : Le dossier courant ou se situe l'utilisateur.

  • filename:/ : La commande principale qui a été utilisée.

  • : La commande complète utilisée par l'utilisateur. .

    Nous avons donc montré par cet article comment récupérer complètement l'historique des commandes sur un serveur Debian.

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels