Mit der Prozessabrechnung können Sie detaillierte Protokolle zu jedem Befehl führen, den ein Benutzer ausführt, einschließlich CPU-Zeit und verwendetem Speicher. Aus Sicherheitssicht bedeutet dies, dass der Systemadministrator Informationen darüber sammeln kann, welcher Benutzer welchen Befehl zu welcher Zeit ausgeführt hat. Dies ist nicht nur sehr nützlich bei der Beurteilung eines Einbruchs oder einer lokalen Root-Kompromittierung, sondern kann auch verwendet werden, um versuchtes böswilliges Verhalten durch normale Benutzer des Systems zu erkennen.
Um die Abrechnungsinformationen zusammenzufassen, können Sie den Befehl sa verwenden. Standardmäßig listet es alle in den Abrechnungsprotokollen gefundenen Befehle auf und gibt die Anzahl der ausgeführten Befehle aus:
# 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-Befehlsbeispiele
1. So fassen Sie Abrechnungsinformationen zusammen:
# sa
2. Um alle aufzulisten und nicht zu sortieren:
# sa -a # sa --list-all-names
3. Um die Ausgabe nach der Summe der Benutzer- und Systemzeit geteilt durch die Anzahl der Aufrufe zu sortieren.
# sa -b # sa --sort-sys-user-div-calls
4. Prozentsätze der Gesamtzeit für die Benutzer-, System- und Echtzeitwerte des Befehls drucken:
# sa -c # sa --percentages
5. Anzunehmen, dass alle Antworten auf interaktive Anfragen positiv sind.
# sa -f # sa --not-interactive
6. So lesen Sie die Informationen in der standardmäßigen savacct-Datei des Systems nicht:
# sa -i # sa --dont-read-summary-file
7. Sekunden pro Anruf drucken:
# sa -j # sa --print-seconds
8. So sortieren Sie die Ausgabe nach der durchschnittlichen Speichernutzung der CPU-Zeit:
# sa -k # sa --sort-cpu-avmem
9. So drucken und sortieren Sie die Ausgabe nach dem CPU-Speicher-Integral:
# sa -K # sa --sort-ksec
10. So drucken Sie getrennte Spalten für System- und Benutzerzeit:
# sa -l # sa --separate-times
11. So drucken Sie die Anzahl der Prozesse und die Anzahl der CPU-Minuten pro Benutzer aus.
# sa -m # sa --user-summary
12. So sortieren Sie die Ausgabe nach der Anzahl der Aufrufe:
# sa -n # sa --sort-num-calls
13. Ausgabeelemente in umgekehrter Reihenfolge sortieren:
# sa -r # sa --reverse-sort
14. Zusammenführen der zusammengefassten Abrechnungsdaten in die Zusammenfassungsdateien savacct und usracct:
# sa -s # sa --merge
15. Um das Verhältnis von Echtzeit zur Summe von System- und Benutzerzeiten auszudrucken:
# sa -t # sa --print-ratio
16. So drucken Sie die Benutzer-ID und den Befehlsnamen:
# sa -u # sa --print-users
17. Um Befehle zu drucken, die num Mal oder weniger ausgeführt wurden und auf eine Antwort vom Terminal warten:
# sa -v 10 # sa --threshold 10
18. Um die Version zu sehen:
# sa -V # sa --version
19. So erhalten Sie Hilfe:
# sa -h # sa --help
Um das System weiterhin zu überwachen, installieren wir zunächst das acct-Paket auf dem System. Bei einigen anderen Linux-Distributionen wäre das zu verwendende Paket psacct, wenn acct nicht kompatibel ist. Sobald das Tool installiert ist und ausgeführt wird, beginnt es, ein Protokoll der Aktivitäten auf dem System zu führen. Wir können diese Protokolle dann mit den im obigen Abschnitt beschriebenen Befehlen ansehen.