AA_kamera_11953586_123rf_daniilantiq.jpg

© Daniilantiq, 123RF

Systemzugriffe von Benutzern anzeigen

Beobachtet

Linux führt Protokoll über alle Aktionen, die auf dem System stattfinden. Dazu gehört auch, wann welche Benutzer aktiv waren und was sie unternommen haben.

Als Mehrbenutzersystem ist Linux darauf ausgelegt, dass mehrere Anwender parallel damit arbeiten. Deswegen stellt es von Haus aus Werkzeuge bereit, die dem Systembetreuer ein entsprechendes Monitoring und auch regelmäßig Sicherheitsüberprüfungen ermöglichen.

Mithilfe dieser Tool erkennt der Administrator recht schnell eine Erklärung für ungewöhnliches Systemverhalten wie etwa Lastschwankungen und kann so die Ursachen beseitigen, um wieder einen stabilen Regelbetrieb zu gewährleisten.

Während sich frühere Artikel mit dem Bandbreiten-Monitoring [1] und, damit verbunden, mit der von Prozessen und Schnittstellen [2] erzeugten Last beschäftigten, stehen diesmal die Benutzer und deren Aktivitäten im Vordergrund.

Nutzer auf dem System

Der erste Blick gilt den Nutzern, die sich regulär auf dem System anmelden dürfen. Deren Konten und die Einstellungen dazu finden Sie in der Datei /etc/passwd (Listing 1). Jede Zeile darin beschreibt einen Benutzerzugang anhand verschiedener Felder.

Listing 1

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
[...]
avahi:x:107:119:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
usbmux:x:108:46:usbmux daemon,,,:/home/usbmux:/bin/false
kernoops:x:109:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false
pulse:x:110:120:PulseAudio daemon,,,:/var/run/pulse:/bin/false
[...]
jluther:x:1000:1000:Jörg Luther,,,:/home/jluther:/bin/bash

Ganz vorn steht der Login-Name, danach folgen die Benutzer- und Gruppen-ID und der Realname des Users. Es folgen dessen Home-Verzeichnis sowie abschließend das Programm, das nach der erfolgreichen Authentifizierung automatisch startet. Üblicherweise handelt es sich dabei um /bin/sh oder /bin/bash als Login-Shell.

Eine Liste der Benutzerzugänge erstellen Sie mithilfe des Universalwerkzeugs cut, indem Sie jeweils das erste Feld aus jeder Zeile der Datei extrahieren. Die Option -d : ("delimiter") setzt das Trennzeichen auf den Doppelpunkt, -f 1 bezeichnet das erste Textfeld in jeder Zeile. Listing 2 zeigt das Ergebnis des Aufrufs.

Listing 2

$ cut -d : -f 1 /etc/passwd
root
daemon
bin
sys
[...]
jluther

An erster Stelle steht stets der Zugang für den administrativen Benutzer root mit der ID 0. Die Liste umfasst auch Einträge für Systemdienste ohne echtes Login, wie etwa exim, sshd, avahi oder saned. Andere Einträge tauchen nur unter bestimmten Umständen in der Liste auf. So erscheint etwa www-data nur dann, wenn auf dem System ein Webserver wie Apache oder Nginx läuft.

Die Konten der Systemdienste tragen eine recht niedrige User-ID und weisen als Login-Shell Einträge der Form /bin/false oder /usr/sbin/nologin auf. Melden Sie sich als Benutzer über einen solchen Account an, startet das hinterlegte Programm; enthält der Eintrag /bin/false, bekommen Sie dabei keine Shell.

Das Awk-Kommando aus Listing 3 filtert aus der Datei /etc/passwd alle tatsächlichen Benutzer samt deren User-ID heraus. Dazu nutzt es die Tatsache aus, dass die IDs regulärer Benutzer stets beim Wert 1000 beginnen.

Listing 3

$ awk -F: '$3>999{print $3,$1}' /etc/passwd | sort -n
1000 frank
1001 kurs
1002 test
65534 nobody

Die Option -F: setzt im Awk-Aufruf zunächst den Feldtrenner auf den Doppelpunkt. Die Angabe '$3>999{print $3,$1}' wertet also den Inhalt des dritten Textfelds aus und prüft, ob dieses einen Wert größer als 999 besitzt. Falls ja, gibt es den Inhalt des dritten und ersten Felds (User-ID und Login) aus.

Die einfachen Anführungsstriche sorgen dafür, dass die Shell die Option nicht selbst auswertet. Der Pipe-Operator | leitet die Ausgabe von Awk an das Kommando Sort weiter, das die Zeilen aufsteigend sortiert. Die Option -n sorgt dabei für die korrekte Interpretation der numerischen Daten.

Lassen Sie dieses Awk-Kommando von Zeit zu Zeit laufen, um Altbestände nicht mehr existierender Benutzer zutage zu fördern. Genaueres Augenmerk sollten Sie auch Home-Verzeichnissen schenken, deren Benutzer eigentlich keines haben dürften oder die sich eigentlich an anderer Stelle befinden müssten.

Momentan aktive Benutzer

Um festzustellen, welche Benutzer im Moment auf dem System aktiv sind, setzen Sie die drei Standardwerkzeuge users, w und who ein. Das erste zeigt lediglich eine Liste mit den Benutzernamen an – erscheint ein Name mehrmals, hat dieser Benutzer derzeit entsprechend viele aktive Login-Sessions auf diesem System.

Listing 4 zeigt die Ausgabe von w, die deutlich ausführlicher ausfällt. Sie beginnt mit einer Kopfzeile, die neben der Systemzeit auch die Laufzeit des Systems enthält. Daneben sehen Sie die Anzahl der aktiven Benutzer sowie die durchschnittliche Systemlast. Darunter listet das Kommando benutzerbezogen auf, welche User welche Aktivitäten verursachen.

Listing 4

$ w
 01:51:50 up 49 days,  7:01,  4 users,  load average: 0.12, 0.27, 0.31
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
esc      pts/1    mosh-            00:27    1:24m  0.00s  0.00s tmux att
nasobem  pts/16   88.72.218.175-   21:06    2days  0.12s 20:55  mosh-server new -s -c 256 -l LANG=de_
pluteus  pts/50   79.171.206.7     18Aug14 37:10m  0.21s  0.01s sshd: pluteus [priv]

Auf den Benutzernamen folgen in der zweiten und dritten Spalte das Terminal (TTY) sowie der Ursprungsort (FROM) der Verbindung. Bei Letzterem handelt es sich dabei meist um die IP-Adresse, von der aus die Verbindung hergestellt wurde. Der Wert mosh beim Benutzer esc zeigt an, dass eine verschlüsselte Verbindung über entsprechende Programm [3] erfolgte.

Danach folgen der Zeitpunkt des Logins (LOGIN@), die Leerlaufzeit (IDLE) sowie die CPU-Zeit, die alle über das Terminal angestoßenen Prozesse (JCPU) respektive der derzeit laufende Prozess (PCPU) genutzt haben. Die zur PCPU gehörige Kommandozeile erscheint in der letzten Spalte.

Das Programm who (Listing 5) zeigt ähnliche Informationen wie w, jedoch in kompakterer Form. Sie sehen den Login-Namen, das (Pseudo-)Terminal, den Zeitpunkt des Logins und zuletzt wiederum die Herkunfts-IP oder das Programm, mit dem die Verbindung aufgebaut wurde. Der Wert in den eckigen Klammern führt die zugehörige Prozessnummer auf.

Listing 5

$ who
esc      pts/1        2014-08-27 00:27 (mosh [2247])
nasobem  pts/16       2014-08-26 21:06 (88.72.218.175 via mosh [10278])
pluteus  pts/50       2014-08-18 09:14 (79.171.206.7)

Über die Schalter -a (alle Informationen) und -u (ausführliche Informationen nur der angemeldeten Benutzer) gibt Who noch detaillierter Auskunft. Neben allen echten Terminals (tty, "teletype") sehen Sie dabei auch Terminals in der grafischen Oberfläche (pts, "pseudo terminal slave"). Listing 6 zeigt die entsprechende Ausgabe auf einem Desktop-System.

Die zweite Zeile zeigt den Zeitpunkt des Rechnerstarts, die vierte den Wechsel in den Runlevel 2, und Zeile 6 deutet per Darstellung auf dem Display :0 darauf hin, dass hier das X-Window-System läuft. In den Zeilen 7 bis 9 warten echte Terminals über [Strg]+[Alt]+[F1]…[F6] auf ihre Aktivierung. Die Zeile 12 zeigt ein Pseudoterminal, das in Zeile 13 mit dem Fehlercode 0 terminiert. Pseudoterminals entstehen zum Beispiel beim Öffnen eines Terminalfensters auf einer X-Windows-Oberfläche, indem Sie das Programm xterm aufrufen.

Listing 6

$ who -a
                      2014-08-26 20:46         240 id=si term=0 exit=0
         Systemstart  2014-08-26 20:46
         Runlevel 2   2014-08-26 20:46             last=S
                      2014-08-26 20:46        2264 id=l2 term=0 exit=0
frank  - tty7         2014-08-26 20:46  alt   4444 (:0)
LOGIN    tty1         2014-08-26 20:46        4291 id=1
[...]
LOGIN    tty6         2014-08-26 20:46        4296 id=6
frank  + pts/0        2014-08-26 20:46 15:04  4683 (:0)
         pts/7        2014-08-27 11:11           0 id=/7 term=0 exit=0
frank  + pts/10       2014-08-27 10:49   .    5022 (:0.0)
         pts/11       2014-08-27 11:50           0 id=/11 term=0 exit=0

TIPP

Nutzen Sie statt der Bash die Zsh [7], dann erfahren Sie über das eingebaute Kommando watch, wer sich auf dem System an- und abmeldet. Dazu setzen Sie watch auf den Wert all für alle Benutzer oder notme für alle Benutzer außer Ihnen selbst (Listing 7).

Listing 7

$ watch=(all)
$
test has logged off pts/7 from localhost.
test has logged on pts/7 from localhost.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Praktikable Zwei-Faktor-Authentifizierung für Linux
    Mobile Geräte benötigen ein Plus an Sicherheit, sollen die darauf gespeicherten Daten nicht in unbefugte Hände gelangen. Deswegen sichern Sie den Zugang am besten mit einem zweiten Faktor in Form eines YubiKeys ab.
  • Suche im Netz
    Welche IP-Adresse hat der Router, der Laptop, die Kaffeemaschine? Clevere Linux-Tools geben hier schnell Auskunft.
  • Sichere Authentifizierung mit dem YubiKey (Teil 2)
    SSH-Zugänge gelten als sicher – sofern die Zugangsdaten in den richtigen Händen bleiben. Mit dem YubiKey ergänzen Sie ihr Sicherheitskonzept um eine wirksame 2-Faktor-Authentifizierung.
  • Suche in Datenformaten (Teil 2)
    Wer Grep kennt, der findet Alles. Wer obendrein die Spezialvarianten beherrscht, findet das Gesuchte auch an sonst unzugänglichen Orten.
  • Schlüsseldienst
    PGP/GnuPG wird immer populärer, nicht zuletzt dank NSA und Konsorten. Wir schauen hinter die Kulissen und zeigen, wie und womit Sie Ihre Schlüsselsammlung aktuell halten.
Kommentare

Infos zur Publikation

LU 12/2016: Neue Desktops

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

Brother Drucker DCP-J4120
Achim Zerrer, 09.12.2016 18:08, 0 Antworten
Hallo, ich wollte unter Leap 42.1 den Brother Drucker installieren und dazu das PPD- Datei vom do...
Drucker Epson XP-332 unter ubuntu 14.04 einrichten
Andrea Wagenblast, 30.11.2016 22:07, 2 Antworten
Hallo, habe vergeblich versucht mein Multifunktionsgerät Epson XP-332 als neuen Drucker unter...
Apricity Gnome unter Win 10 via VirtualBox
André Driesel, 30.11.2016 06:28, 2 Antworten
Halo Leute, ich versuche hier schon seit mehreren Tagen Apricity OS Gnome via VirtualBox zum l...
EYE of Gnome
FRank Schubert, 15.11.2016 20:06, 2 Antworten
Hallo, EOG öffnet Fotos nur in der Größenordnung 4000 × 3000 Pixel. Größere Fotos werden nic...
Kamera mit Notebook koppeln
Karl Spiegel, 12.11.2016 15:02, 2 Antworten
Hi, Fotografen ich werde eine SONY alpha 77ii bekommen, und möchte die LifeView-Möglichkeit nu...