Forum Astuces.divers Loguez toute les commandes tapées dans un terminal dans une base mysql

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes : aucune
-1
7
juin
2013

Bonjour,
J'ai rédigé un tuto très utile pour logguer toutes les commandes tapées dans terminal ; très utile pour surveiller ce que font les users sur vos machines ;-)

http://journaldunadminlinux.fr/loggue-toutes-les-commandes-executees-dans-une-base-mysql/

Enjoy

  • # Aïe ! Mes yeux !

    Posté par  . Évalué à 5.

    Hello,

    Merci beaucoup pour ton tutoriel, c'est sympa d'en faire profiter la communauté. Par contre, ceci : « toute les commandes tapez dans une terminal », franchement ça pique les yeux. Je le dis sans méchanceté ni retenue car je vois bien que c'est du laisser aller et pas de réelles difficultés en orthographe.

    Sache que ce n'est pas un détail de chipoteur ni un point de détail secondaire une fois le contenu mis en ligne. C'est réellement dérangeant pour ton lecteur et ça peut le pousser à fuir l'essentiel.

    À part cela, bon courage pour tes futurs hacks.

    • [^] # Re: Aïe ! Mes yeux !

      Posté par  (site web personnel) . Évalué à 0.

      Ouaoouh désolé pour la faute d'orthographe, j'étais légèrement fatigué lol.
      Oui en effet cela ne marche qu'avec Bash

      www.journaldunadminlinux.fr

  • # grep /home/*/.bash_history

    Posté par  . Évalué à 2.

    et encore il faut etre sur que les utilisateurs utilisent tous bash…

  • # process accounting ?

    Posté par  . Évalué à 3. Dernière modification le 08 juin 2013 à 10:11.

    est-ce que tu ne pourrais pas regarder du coté du process-accounting ? l'avantage de cette solution, est que c'est directement intégré au système. J'ai juste du mal a voir quel est le degrés de finesse concernant les commandes passées. Cerise sur le gateau : si tu changes de shell, ca continue de marcher, ce qui n'est pas le cas, avec le bash customisé.

    http://www.cyberciti.biz/tips/howto-log-user-activity-using-process-accounting.html

    marc@quantal:~$ aptitude show acct
    Paquet : acct                                 
    État: non installé
    Version : 6.5.5-1ubuntu3
    Priorité : optionnel
    Section : admin
    Responsable : Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
    Architecture : amd64
    Taille décompressée : 326 k
    Dépend: dpkg (>= 1.15.4) | install-info, libc6 (>= 2.14)
    Est en conflit: acct
    Description : Utilitaires GNU Accounting pour la comptabilisation de processus et connexions
     GNU Accounting Utilities est un ensemble d'utilitaires qui rapportent et résument les données de statistiques sur les temps de connexion des utilisateurs et d'exécution de processus. 
    
     La comptabilisation de connexions (« login accounting ») fournit un résumé sur l'utilisation des ressources système basé sur le temps de connexion et la comptabilisation de processus (« process accounting »)
     fournit un résumé basé sur les commandes exécutées sur le système. 
    
     La commande « last » est fournie par le paquet sysvinit et n'est pas disponible dans ce paquet.
    Site : http://www.gnu.org/software/acct/
    
    
  • # Pas mal

    Posté par  (site web personnel) . Évalué à 0.

    Pas mal du tout je vais tester ca!
    Est ce qu'il y a moyen de centraliser toutes les commandes dans une base de données comme avec ma solution???
    Par exemple si tu possèdes un parc de 100 machines???

    www.journaldunadminlinux.fr

    • [^] # Re: Pas mal

      Posté par  . Évalué à 2.

      Est ce qu'il y a moyen de centraliser toutes les commandes dans une base de données comme avec ma solution???

      oui, un script cron, toutes les X heures ou une fois par jour,
      qui lit l'historique et l'envoie dans ta base de donnée.

      d'ailleurs c'est aussi ce que j'aurais scripté plutot que de modifier le shell depuis son code source (qui ne resiste pas au mise à jour ni au changement de shell)

      • [^] # Re: Pas mal

        Posté par  . Évalué à 2.

        très bon ça de l'injection sql dans le bash_history :)

  • # mince, un patch

    Posté par  . Évalué à 2.

    j'ai salivé à la lecture de ton post car j'ai un besoin : gérer de manière plus intelligente mon historique de commande en batch:
    - ne garder qu'un seule fois une commande même si je l'ai tapé 15 fois de suite et encore 20 fois de suite pls tard (un "SortedSet" en somme)
    - ne pas perdre l'historique en cas de crash (ubuntu est particulièrement instable en ce moment chez moi); en cas de perte de connexion ssh aussi.

    du coup, je me demandais si il n'y avait pas un hook quelconques pour gérer cet aspect dans bash (genre EXPORT bash_history_function=…) mais il semble que non.

    mais je ne voulais pas trop le faire en architecture client-serveur, ça me paraît over kill pour mon besoin. donc peut être m'inspirer de ton patch…

    bravo pour le taf en tout cas.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.