Accueil

Acct : Comptabilité des Processus sous Linux

System
Difficulte: Beginner
3 min de lecture

Guide complet pour installer et configurer acct (GNU Accounting Tool) afin de surveiller et enregistrer l'utilisation des processus sur un système Linux.

Retour aux tutoriels

L'essentiel

  • Le paquet et le service s'appellent acct sur Debian/Ubuntu mais psacct sur CentOS/RHEL : c'est le même outil, seul le nom change.
  • Trois commandes exploitent les données collectées : lastcomm pour le détail chronologique des commandes, sa pour un résumé agrégé par commande, ac pour le temps de connexion en heures.
  • La comptabilité ne démarre qu'une fois le service lancé : systemctl start acct puis systemctl enable acct pour qu'elle survive au redémarrage.
  • Toutes les données atterrissent dans /var/log/account/pacct, un fichier qui grossit en continu.
  • La rotation logrotate est obligatoire : sans un /etc/logrotate.d/acct (weekly, rotate 4, compress), ce fichier finit par saturer la partition racine.
Qu'est-ce que acct ?
L'outil acct (ou psacct) enregistre l'activité de tous les processus du système, fournissant des informations détaillées sur les commandes exécutées, l'utilisateur, le temps CPU, et l'heure d'exécution. C'est un outil précieux pour l'audit et le monitoring.

Pourquoi Utiliser acct ?

  • Audit de Sécurité : Traçabilité complète des commandes exécutées, utile pour les investigations post-incident.
  • Suivi des Ressources : Analyse de la consommation CPU et mémoire par utilisateur ou par processus.
  • Monitoring d'Activité : Visibilité sur l'activité des utilisateurs et des services système.

Prérequis

  • Système d'exploitation : Distribution Linux (Debian, Ubuntu, CentOS, RHEL).
  • Privilèges : Accès root ou privilèges sudo.

Installation de acct

Étape 1 : Installation du paquet

Le nom du paquet varie selon la distribution :

# Pour Debian / Ubuntu
sudo apt-get update
sudo apt-get install -y acct

# Pour CentOS / RHEL
sudo yum install -y psacct

Étape 2 : Activation du service

Une fois installé, le service doit être activé et démarré :

sudo systemctl start acct
sudo systemctl enable acct
# Pour CentOS/RHEL, le service se nomme psacct
sudo systemctl start psacct
sudo systemctl enable psacct

Vérifiez que le service est bien actif :

sudo systemctl status acct # ou psacct
Service activé
Le service acct est maintenant en cours d'exécution et enregistre l'activité des processus.

Commandes principales de acct

Plusieurs commandes permettent d'exploiter les données collectées.

lastcomm : Dernières commandes exécutées

Affiche la liste des commandes exécutées, de la plus récente à la plus ancienne.

lastcomm

Pour filtrer par utilisateur ou par commande :

# Commandes exécutées par l'utilisateur 'morgann'
lastcomm morgann

# Toutes les exécutions de la commande 'ls'
lastcomm ls

sa : Résumé par commande

La commande sa fournit un résumé des informations collectées, agrégées par commande.

# Résumé de base
sa

# Trier par le nombre d'appels
sa -n

# Afficher les informations par utilisateur
sa -m

ac : Temps de connexion par utilisateur

Affiche le temps de connexion total des utilisateurs en heures.

# Temps total par utilisateur
ac -p

# Temps total pour tous les utilisateurs
ac

Fichiers de log et Rotation

Les données sont stockées par défaut dans /var/log/account/pacct. Ce fichier peut grossir rapidement.

Configuration de la rotation

Il est crucial de mettre en place une rotation des logs avec logrotate. Créez un fichier /etc/logrotate.d/acct :

sudo nano /etc/logrotate.d/acct

Contenu du fichier :

/var/log/account/pacct {
    weekly
    rotate 4
    compress
    missingok
    notifempty
    create 0644 root root
}
Gestion de l'espace disque
Sans rotation, le fichier de log de acct peut saturer votre partition racine. Ne négligez pas cette étape !

Conclusion

L'outil acct ou psacct est un excellent moyen de renforcer la sécurité et la surveillance de vos systèmes Linux. Il fournit une traçabilité indispensable pour l'audit et l'analyse de performance. Son installation et sa configuration sont simples, mais n'oubliez pas de gérer la rotation de ses logs pour une utilisation sereine en production.

MR

Écrit par

Morgann Riu

Expert en cybersécurité et administration Linux. Je partage mes connaissances à travers des tutoriels gratuits et des formations pour aider les administrateurs systèmes et développeurs à sécuriser leurs infrastructures.

Questions fréquentes

Pourquoi systemctl start acct échoue-t-il sur CentOS ou RHEL ?
Sur les distributions de la famille RHEL, le paquet et l'unité systemd portent le nom psacct et non acct. Installez avec sudo yum install -y psacct, puis lancez sudo systemctl start psacct et sudo systemctl enable psacct. Sur Debian et Ubuntu, c'est bien acct dans les deux cas.
Quelle différence entre lastcomm, sa et ac ?
lastcomm liste les commandes exécutées une par une, de la plus récente à la plus ancienne, et accepte un filtre : lastcomm morgann pour un utilisateur, lastcomm ls pour une commande précise. sa agrège ces mêmes données par commande, avec sa -n pour trier par nombre d'appels et sa -m pour ventiler par utilisateur. ac ne parle pas de processus mais de temps de connexion en heures, ac -p donnant le détail utilisateur par utilisateur.
lastcomm ne retourne rien, où chercher ?
Vérifiez d'abord que le service tourne avec sudo systemctl status acct (ou psacct) : tant qu'il n'est pas démarré, rien n'est collecté. Contrôlez ensuite l'existence et la taille de /var/log/account/pacct, qui est le fichier réellement lu par lastcomm. Un fichier absent ou vide signifie que la comptabilité des processus n'a jamais été active.
Ma partition racine s'est remplie depuis l'installation d'acct, que faire ?
Le fichier /var/log/account/pacct enregistre chaque processus et grossit sans limite tant qu'aucune rotation n'est en place. Créez /etc/logrotate.d/acct avec une politique du type weekly, rotate 4, compress, missingok, notifempty et create 0644 root root. C'est l'étape la plus souvent oubliée, et c'est exactement celle qui sature le disque en production.
acct suffit-il à lui seul pour un audit de sécurité ?
Il fournit la traçabilité des commandes exécutées avec l'utilisateur associé, le temps CPU et l'heure d'exécution, ce qui couvre déjà l'essentiel d'une investigation post-incident et le suivi de consommation par utilisateur ou par processus. Il reste toutefois centré sur les processus et ne remplace pas un audit des accès fichiers. Comme le journal est purement local, prévoyez une déportation des logs si vous voulez qu'il résiste à une compromission de la machine.

Partager ce tutoriel

Cet article vous a plu ?

Cet article vous a-t-il été utile ?

Merci pour votre retour !

Commentaires

Recommandé pour vous

Article de fond sur le sujet

Checklist Sécurité Linux

30 points essentiels pour sécuriser un serveur Linux. Recevez aussi les nouveaux tutoriels par email.

Pas de spam. Désabonnement en 1 clic.