GNU/Linux >> Tutoriels Linux >  >> Linux

Surveillance du statut et de l'activité des utilisateurs sous Linux avec compte GNU

Il existe de nombreuses applications de surveillance pour les serveurs, et elles ont beaucoup fait pour faciliter l'adoption de Linux avec des administrateurs système qui ne sont pas habitués au terminal ou qui ont un réel besoin de représentations graphiques des données. Cependant, Linux est un système multi-utilisateurs depuis le début, et UNIX bien avant cela, il existe donc des outils intégrés qui remontent à 40 ans pour vous aider à surveiller qui est connecté à votre serveur, qui utilise des ressources et pour quoi.

Vous n'avez pas besoin d'être paranoïaque ou même curieux pour justifier de surveiller de près un serveur dont vous êtes responsable. Le package psacct contient plusieurs commandes pour collecter des rapports détaillés sur l'état et l'activité de l'utilisateur.

accton

Pas toutes les commandes dans le acct les utilitaires exigent que vous activiez la comptabilité, mais beaucoup le font. Si vous avez l'intention d'utiliser acct commandes, vous devez activer la comptabilité avec le accton commande.

Pour activer :

$ sudo accton on

Par défaut, les enregistrements comptables sont stockés dans /var/account/pacct . Ce fichier pourrait devenir assez volumineux, alors utilisez logrotate ou un outil similaire pour assurer une bonne gestion des journaux.

Pour désactiver la comptabilité :

$ sudo accton off

ac

Le ac La commande affiche des statistiques sur les temps de connexion. Si vous avez besoin d'avoir un aperçu du nombre d'utilisateurs actifs sur un système, le --individual-totals l'option fournit cela. Il génère son rapport en heures sur la base des connexions et déconnexions enregistrées dans le /var/log/wtmp fichier.

Le fichier comptable wtmp est maintenu par init(8) et login(1) mais ni ac ou login crée réellement le fichier. Si wtmp n'existe pas, alors aucun rapport n'est généré, mais vous pouvez pointer ac vers un autre emplacement en utilisant le --file option. Si un wtmp n'existe pas sur votre système, vous pouvez créer un wtmp vide fichier pour activer la création de rapports sur votre système.

Pour obtenir un rapport sur les temps de connexion des utilisateurs individuels :

$ ac --individual-totals
seth     20.16
larry    43.60
curly    10.32
moe      35.11

Vous pouvez également obtenir les totaux quotidiens :

$ ac --daily-totals
Jan 20  total       22.61
Jan 21  total       73.60
Jan 22  total       84.00
Jan 23  total       100.69
Jan 24  total       18.24
Jan 25  total        2.43
Jan 27  total       35.36
Today   total       62.13

lastcomm

Le lastcomm commande affiche les dernières commandes émis sur le système pour un utilisateur donné. Si aucun utilisateur n'est spécifié, un rapport sur l'utilisateur actuel est généré.

$ sudo lastcomm --strict-match --user curly --tty pts/2
basename               curly   pts/2      0.00 secs Tue Jan 28 15:41
ps                     curly   pts/2      0.00 secs Tue Jan 28 15:41
bash              F    curly   pts/2      0.00 secs Tue Jan 28 15:41
manpath                curly   pts/2      0.00 secs Tue Jan 28 15:41
bash              F    curly   pts/2      0.00 secs Tue Jan 28 15:41
tclsh                  curly   pts/2      0.00 secs Tue Jan 28 15:41
bash              F    curly   pts/2      0.00 secs Tue Jan 28 15:41
bash              F    curly   pts/2      0.00 secs Tue Jan 28 15:41
sed                    curly   pts/2      0.00 secs Tue Jan 28 15:41

Les commandes listées par lastcomm ne sont pas nécessairement des commandes lancées interactivement par un utilisateur. Par exemple, simplement en se connectant, un utilisateur génère près de 40 éléments dans la sortie de lastcomm , donc ça peut être écrasant. Couplé avec grep , cependant, c'est un moyen facile d'avoir une idée de l'historique des sessions d'un utilisateur.

sa

Le sa La commande résume les informations comptables dérivées de /var/account/pacct dossier. Si vous auditez les activités des utilisateurs, alors le --print-users option imprime le nom d'utilisateur avant chaque commande :

$ sudo sa --print-users
root    0.00 cpu      579k mem      0 io accton
root    0.03 cpu    64064k mem      0 io sudo 
seth    0.00 cpu    56752k mem      0 io bash         *
seth    0.00 cpu    54080k mem      0 io sed 
seth    0.00 cpu    56752k mem      0 io bash         *
larry   0.00 cpu    56752k mem      0 io bash         *
curly   0.00 cpu    56752k mem      0 io bash         *
moe     0.00 cpu    56752k mem      0 io bash         *
seth    0.00 cpu    54080k mem      0 io ls 

Vous pouvez également obtenir uniquement un résumé pour chaque utilisateur :

$ sudo sa --user-summary
                                     1065    2169.59re       0.97cp         0avio     49373k
seth                                  812    1117.11re       0.83cp         0avio     58163k
root                                  199    1052.42re       0.14cp         0avio     21314k
larry                                  41       0.00re       0.00cp         0avio     19403k
curly                                   1       0.06re       0.00cp         0avio      6706k
moe                                    12       0.00re       0.00cp         0avio     25888k
[...]

Les colonnes affichées, en plus des noms d'utilisateurs, rapportent sur le CPU (temps réel et temps CPU), les opérations d'E/S par commande (moyenne et totale), etc. Ils peuvent être configurés à l'aide d'options telles que --sort-tio pour t E/S totales , --sort-cpu-avmem pour trier le temps CPU en fonction de l'utilisation moyenne de la mémoire, etc. Tous les filtres de tri peuvent être inversés avec le --reverse-sort option.

Profilage des utilisateurs

Combiné avec des outils tels que who, w et ps, vous pouvez avoir une idée de la façon dont les utilisateurs dépensent les ressources système, quelles commandes peuvent être problématiques et quelles mises à niveau de serveur pourraient être utiles à l'avenir. Parce que le acct est basée sur un terminal, elle peut être scriptée et utilisée par d'autres outils, vous permettant de créer un mécanisme de rapport personnalisé.

[ Voulez-vous essayer Red Hat Enterprise Linux ? Télécharge le maintenant gratuitement. ]


Linux
  1. Apprenez la différence entre les commandes "su" et "su -" sous Linux

  2. Comment surveiller l'activité des utilisateurs sous Linux

  3. Principes de base de l'administrateur système Linux :gestion des comptes d'utilisateurs avec les UID et les GID

  4. Surveillance de la sécurité sous Linux avec Tripwire

  5. 8 Meilleures pratiques avec sudo sous Linux - À faire et à ne pas faire de sudo

Personnalisation de mon terminal Linux avec tmux et Git

Gestion des processus sous Linux avec kill et killall

Surveillance des hôtes Linux et Windows avec Glances

Premiers pas avec GIT sous Linux

Surveiller l'activité des utilisateurs avec l'outil acct sur Ubuntu 20.04

Surveillance de la bande passante sous Linux avec Nethogs