La comptabilisation des processus vous permet de conserver des journaux détaillés de chaque commande exécutée par un utilisateur, y compris le temps CPU et la mémoire utilisée. Du point de vue de la sécurité, cela signifie que l'administrateur système peut recueillir des informations sur quel utilisateur a exécuté quelle commande et à quelle heure. Ceci est non seulement très utile pour évaluer une effraction ou un compromis racine local, mais peut également être utilisé pour repérer les tentatives de comportement malveillant par les utilisateurs normaux du système.
Pour résumer les informations comptables, vous pouvez utiliser la commande sa. Par défaut, il listera toutes les commandes trouvées dans les journaux de comptabilité et imprimera le nombre de fois que chacune a été exécutée :
# sa 14 0.04re 0.03cp 0avio 1297k troff 7 0.03re 0.03cp 0avio 422k lastcomm 2 63.90re 0.01cp 0avio 983k info 14 34.02re 0.01cp 0avio 959k less 14 0.03re 0.01cp 0avio 1132k grotty 44 0.02re 0.01cp 0avio 432k gunzip
Exemples de commandes sa
1. Pour résumer les informations comptables :
# sa
2. Pour tout lister et non trier :
# sa -a # sa --list-all-names
3. Pour trier la sortie en fonction de la somme du temps de l'utilisateur et du système divisé par le nombre d'appels.
# sa -b # sa --sort-sys-user-div-calls
4. Pour imprimer les pourcentages du temps total pour les valeurs utilisateur, système et temps réel de la commande :
# sa -c # sa --percentages
5. Supposer que toutes les réponses aux requêtes interactives sont affirmatives.
# sa -f # sa --not-interactive
6. Pour ne pas lire les informations du fichier savacct par défaut du système :
# sa -i # sa --dont-read-summary-file
7. Pour imprimer les secondes par appel :
# sa -j # sa --print-seconds
8. Pour trier la sortie par utilisation moyenne de la mémoire par temps CPU :
# sa -k # sa --sort-cpu-avmem
9. Pour imprimer et trier la sortie par l'intégrale cpu-storage :
# sa -K # sa --sort-ksec
10. Pour imprimer des colonnes séparées pour le système et l'heure de l'utilisateur :
# sa -l # sa --separate-times
11. Pour imprimer le nombre de processus et le nombre de minutes CPU par utilisateur.
# sa -m # sa --user-summary
12. Pour trier la sortie par nombre d'appels :
# sa -n # sa --sort-num-calls
13. Pour trier les éléments de sortie dans l'ordre inverse :
# sa -r # sa --reverse-sort
14. Pour fusionner les données comptables résumées dans les fichiers résumés savacct et usracct :
# sa -s # sa --merge
15. Pour imprimer le rapport entre le temps réel et la somme des temps système et utilisateur :
# sa -t # sa --print-ratio
16. Pour imprimer l'ID utilisateur et le nom de la commande :
# sa -u # sa --print-users
17. Pour imprimer les commandes qui ont été exécutées num fois ou moins et attendent une réponse du terminal :
# sa -v 10 # sa --threshold 10
18. Pour voir la version :
# sa -V # sa --version
19. Pour obtenir de l'aide :
# sa -h # sa --help
Pour continuer à surveiller le système, nous installons d'abord le paquet acct sur le système. Pour quelques autres distributions Linux, le package à utiliser serait psacct si acct n'est pas compatible. Une fois l'outil installé et en cours d'exécution, il commence à conserver un journal des activités sur le système. Nous pouvons ensuite regarder ces journaux à l'aide des commandes décrites dans la section ci-dessus.