La contabilità dei processi consente di mantenere registri dettagliati di ogni comando eseguito da un utente, inclusi il tempo della CPU e la memoria utilizzata. Dal punto di vista della sicurezza, ciò significa che l'amministratore di sistema può raccogliere informazioni su quale utente ha eseguito quale comando ea che ora. Questo non è solo molto utile per valutare un'irruzione o una compromissione della radice locale, ma può anche essere utilizzato per individuare tentativi di comportamento dannoso da parte dei normali utenti del sistema.
Per riassumere le informazioni contabili, è possibile utilizzare il comando sa. Di default elencherà tutti i comandi trovati nei registri contabili e stamperà il numero di volte che ognuno è stato eseguito:
# 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
Sa Esempi di comandi
1. Per riassumere le informazioni contabili:
# sa
2. Per elencare tutto e non ordinare:
# sa -a # sa --list-all-names
3. Per ordinare l'output in base alla somma del tempo utente e di sistema diviso per il numero di chiamate.
# sa -b # sa --sort-sys-user-div-calls
4. Per stampare le percentuali del tempo totale per l'utente, il sistema e i valori in tempo reale del comando:
# sa -c # sa --percentages
5. Dare per scontato che tutte le risposte alle domande interattive siano affermative.
# sa -f # sa --not-interactive
6. Per non leggere le informazioni nel file savacct predefinito del sistema:
# sa -i # sa --dont-read-summary-file
7. Per stampare i secondi per chiamata:
# sa -j # sa --print-seconds
8. Per ordinare l'output in base all'utilizzo medio della memoria della CPU:
# sa -k # sa --sort-cpu-avmem
9. Per stampare e ordinare l'output in base all'integrale cpu-storage:
# sa -K # sa --sort-ksec
10. Per stampare colonne separate per il sistema e l'ora dell'utente:
# sa -l # sa --separate-times
11. Per stampare il numero di processi e il numero di minuti CPU per utente.
# sa -m # sa --user-summary
12. Per ordinare l'output in base al numero di chiamate:
# sa -n # sa --sort-num-calls
13. Per ordinare gli elementi di output in ordine inverso:
# sa -r # sa --reverse-sort
14. Per unire i dati contabili riepilogati nei file di riepilogo savacct e usracct:
# sa -s # sa --merge
15. Per stampare il rapporto tra il tempo reale e la somma dei tempi di sistema e utente:
# sa -t # sa --print-ratio
16. Per stampare l'ID utente e il nome del comando:
# sa -u # sa --print-users
17. Per stampare i comandi che sono stati eseguiti num volte o meno e attendere una risposta dal terminale:
# sa -v 10 # sa --threshold 10
18. Per vedere la versione:
# sa -V # sa --version
19. Per ottenere l'aiuto:
# sa -h # sa --help
Per continuare a monitorare il sistema, installiamo prima il pacchetto acct sul sistema. Per alcune altre distribuzioni Linux, il pacchetto da utilizzare sarebbe psacct se acct non è compatibile. Una volta che lo strumento è installato e in esecuzione, inizia a mantenere un registro delle attività sul sistema. Possiamo quindi guardare questi registri usando i comandi discussi nella sezione precedente.