Ricerca nel sito web

Monitora l'attività degli utenti Linux con gli strumenti psacct o acct


psacct o acct sono entrambe utilità open source per monitorare le attività degli utenti sul sistema Linux. Queste utilità vengono eseguite in background e tengono traccia dell'attività di ciascun utente sul tuo sistema, nonché delle risorse che vengono consumate.

Ho utilizzato personalmente questi strumenti nella nostra azienda, abbiamo un team di sviluppo in cui i nostri sviluppatori lavorano continuamente sui server. Quindi, queste sono le migliori utility per tenerli d'occhio.

Questi programmi forniscono un modo eccellente per monitorare cosa stanno facendo gli utenti, quali comandi stanno eseguendo, quante risorse vengono consumate e per quanto tempo gli utenti sono attivi sul sistema. Un'altra caratteristica utile è che fornisce le risorse totali consumate da servizi come Apache, MySQL, FTP, SSH, ecc.

Penso che questa sia una delle utilità fantastiche e più necessarie per ogni amministratore di sistema Linux/Unix, che desidera tenere traccia delle attività degli utenti sui propri server/sistemi.

Il pacchetto psacct o acct fornisce diverse funzionalità per il monitoraggio delle attività del processo.

  • Il comando ac stampa le statistiche degli accessi/disconnessioni degli utenti (tempo di connessione) in ore.
  • Il comando lastcomm stampa le informazioni sui comandi precedentemente eseguiti dall'utente.
  • I comandi accton vengono utilizzati per attivare/disattivare il processo di contabilità.
  • Il comando sa riassume le informazioni dei comandi eseguiti in precedenza.
  • I comandi last e lastb mostrano un elenco degli ultimi utenti che hanno effettuato l'accesso.

Installazione dei pacchetti psacct o acct in Linux

psacct e acct sono entrambi pacchetti simili e non c'è molta differenza tra loro, ma il pacchetto psacct è disponibile solo per distribuzioni basate su rpm come come RHEL, CentOS e Fedora, mentre il pacchetto acct è disponibile per distribuzioni come Ubuntu<, Debian e Linux Mint.

Per installare il pacchetto psacct nelle distribuzioni basate su rpm, immetti il seguente comando yum.

yum install psacct

Per installare il pacchetto acct utilizzare il comando apt in Ubuntu/Debian/Linux Mint.

sudo apt install acct

Su altre distribuzioni Linux, puoi installarlo come mostrato.

sudo apk add psacct          [On Alpine Linux]
sudo pacman -S acct          [On Arch Linux]
sudo zypper install acct     [On OpenSUSE]    
Avvio del servizio psacct o acct

Per impostazione predefinita, il servizio psacct è in modalità disabilitata ed è necessario avviarlo manualmente nelle distribuzioni basate su RHEL. Utilizzare il comando seguente per verificare lo stato del servizio.

sudo systemctl status psacct

Vedi lo stato visualizzato come disabilitato, quindi avviamolo manualmente utilizzando i seguenti comandi, che creeranno un file /var/account/pacct.

sudo systemctl start psacct
sudo systemctl enable psacct
sudo systemctl status psacct

In Ubuntu, Debian e Mint il servizio viene avviato automaticamente, non è necessario avviarlo di nuovo.

Visualizza le statistiche del tempo di connessione degli utenti

Il comando ac senza specificare alcun argomento visualizzerà le statistiche totali del tempo di connessione in ore in base agli accessi/disconnetti dell'utente dal file wtmp corrente.

ac

total     11299.15

Visualizza le statistiche degli utenti Linux giornalieri

Utilizzando il comando “ac -d” verrà stampato il tempo totale di accesso in ore per giorno.

ac -d

Jun 25	total        0.19
Oct 13	total       14.45
Oct 27	total      672.00
Oct 28	total       15.82
Nov  3	total        4.29
Nov  5	total       10.13
Dec  7	total       14.04
Dec 10	total       23.60
Dec 27	total      808.93
Jan  3	total       12.31
Mar  3	total     1438.67
Jul 22	total     6767.81
Today	total     1517.09

Visualizza il tempo di accesso totale di tutti gli utenti Linux

Utilizzando il comando "ac -p" verrà stampato il tempo di accesso totale di ciascun utente Linux in ore.

ac -p

	rockylinux                         425.61
	tecmint                            702.29
	root                             10171.54
	total    11299.44

Visualizza l'ora di accesso dell'utente Linux

Per ottenere il tempo totale delle statistiche di accesso dell'utente "tecmint" in ore, utilizzare il comando as.

ac tecmint
 total      702.29

Visualizza l'orario di accesso giornaliero dell'utente

Il seguente comando stamperà il tempo totale di accesso giornaliero dell'utente "tecmint" in ore.

ac -d tecmint
Oct 11  total        8.01
Oct 12  total       24.00
Oct 15  total       70.50
Oct 16  total       23.57
Oct 17  total       24.00
Oct 18  total       18.70
Nov 20  total        0.18

Stampa tutti i comandi Linux eseguiti dagli utenti

Il comando “sa” viene utilizzato per stampare il riepilogo dei comandi eseguiti dagli utenti.

sa
       2       9.86re       0.00cp     2466k   sshd*
       8       1.05re       0.00cp     1064k   man
       2      10.08re       0.00cp     2562k   sshd
      12       0.00re       0.00cp     1298k   psacct
       2       0.00re       0.00cp     1575k   troff
      14       0.00re       0.00cp      503k   ac
      10       0.00re       0.00cp     1264k   psacct*
      10       0.00re       0.00cp      466k   consoletype
       9       0.00re       0.00cp      509k   sa
       8       0.02re       0.00cp      769k   udisks-helper-a
       6       0.00re       0.00cp     1057k   touch
       6       0.00re       0.00cp      592k   gzip
       6       0.00re       0.00cp      465k   accton
       4       1.05re       0.00cp     1264k   sh*
       4       0.00re       0.00cp     1264k   nroff*
       2       1.05re       0.00cp     1264k   sh
       2       1.05re       0.00cp     1120k   less
       2       0.00re       0.00cp     1346k   groff
       2       0.00re       0.00cp     1383k   grotty
       2       0.00re       0.00cp     1053k   mktemp
       2       0.00re       0.00cp     1030k   iconv
       2       0.00re       0.00cp     1023k   rm
       2       0.00re       0.00cp     1020k   cat
       2       0.00re       0.00cp     1018k   locale
       2       0.00re       0.00cp      802k   gtbl

Spiegazione dell'output del comando precedente:

  • 9.86re è un "tempo reale" secondo i minuti dell'orologio da parete
  • 0.01cp è la somma del tempo del sistema/utente in minuti CPU
  • 2466k è l'utilizzo medio del core in termini di tempo della CPU, ovvero 1k unità
  • Nome del comando sshd

Stampa le informazioni sull'utente Linux

Per ottenere le informazioni di un singolo utente, utilizzare le opzioni -u.

sa -u
root       0.00 cpu      465k mem accton
root       0.00 cpu     1057k mem touch
root       0.00 cpu     1298k mem psacct
root       0.00 cpu      466k mem consoletype
root       0.00 cpu     1264k mem psacct           *
root       0.00 cpu     1298k mem psacct
root       0.00 cpu      466k mem consoletype
root       0.00 cpu     1264k mem psacct           *
root       0.00 cpu     1298k mem psacct
root       0.00 cpu      466k mem consoletype
root       0.00 cpu     1264k mem psacct           *
root       0.00 cpu      465k mem accton
root       0.00 cpu     1057k mem touch

Stampa Numero di processi Linux

Questo comando stampa il numero totale di processi e minuti CPU. Se vedi un aumento continuo di questi numeri, allora è il momento di esaminare il sistema per capire cosa sta succedendo.

sa -m
sshd                                    2       9.86re       0.00cp     2466k
root                                  127      14.29re       0.00cp      909k

Stampa e ordina l'utilizzo in percentuale

Il comando "sa -c" mostra la percentuale più alta di utenti.

sa -c
 132  100.00%      24.16re  100.00%       0.01cp  100.00%      923k
       2    1.52%       9.86re   40.83%       0.00cp   53.33%     2466k   sshd*
       8    6.06%       1.05re    4.34%       0.00cp   20.00%     1064k   man
       2    1.52%      10.08re   41.73%       0.00cp   13.33%     2562k   sshd
      12    9.09%       0.00re    0.01%       0.00cp    6.67%     1298k   psacct
       2    1.52%       0.00re    0.00%       0.00cp    6.67%     1575k   troff
      18   13.64%       0.00re    0.00%       0.00cp    0.00%      509k   sa
      14   10.61%       0.00re    0.00%       0.00cp    0.00%      503k   ac
      10    7.58%       0.00re    0.00%       0.00cp    0.00%     1264k   psacct*
      10    7.58%       0.00re    0.00%       0.00cp    0.00%      466k   consoletype
       8    6.06%       0.02re    0.07%       0.00cp    0.00%      769k   udisks-helper-a
       6    4.55%       0.00re    0.00%       0.00cp    0.00%     1057k   touch
       6    4.55%       0.00re    0.00%       0.00cp    0.00%      592k   gzip
       6    4.55%       0.00re    0.00%       0.00cp    0.00%      465k   accton
       4    3.03%       1.05re    4.34%       0.00cp    0.00%     1264k   sh*
       4    3.03%       0.00re    0.00%       0.00cp    0.00%     1264k   nroff*
       2    1.52%       1.05re    4.34%       0.00cp    0.00%     1264k   sh
       2    1.52%       1.05re    4.34%       0.00cp    0.00%     1120k   less
       2    1.52%       0.00re    0.00%       0.00cp    0.00%     1346k   groff
       2    1.52%       0.00re    0.00%       0.00cp    0.00%     1383k   grotty
       2    1.52%       0.00re    0.00%       0.00cp    0.00%     1053k   mktemp

Elenca gli ultimi comandi eseguiti dall'utente

Il comando "latcomm" viene utilizzato per cercare e visualizzare le informazioni sui comandi utente eseguiti in precedenza. Puoi anche cercare comandi di singoli nomi utente. Ad esempio, vediamo i comandi dell'utente (tecmint).

lastcomm tecmint
su                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
bash               F    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
id                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
grep                    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
grep                    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
bash               F    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
dircolors               tecmint  pts/0      0.00 secs Wed Feb 13 15:56
bash               F    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
tput                    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
tty                     tecmint  pts/0      0.00 secs Wed Feb 13 15:56
bash               F    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
id                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
bash               F    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
id                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56

Cerca nei registri i comandi

Con l'aiuto del comando lastcomm potrai visualizzare l'utilizzo individuale di ciascun comando.

lastcomm ls
ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56

Per ulteriori informazioni e utilizzo, consulta le pagine man di questi strumenti.