So überprüfen Sie die Verwendung des sudo-Befehls unter Linux
Veröffentlicht: 2022-08-24
Der Befehl sudo
verleiht einem Benutzer Superuser- oder Root-Berechtigungen. Zweifellos haben Sie ihnen die Rede „Mit großer Macht kommt große Verantwortung“ gehalten. So überprüfen Sie, ob sie zugehört haben oder nicht.
Der sudo-Befehl
Der Befehl sudo
steht für „substitute user do“. Es lässt eine autorisierte Person einen Befehl ausführen, als wäre sie ein anderer Benutzer. Es kann Befehlszeilenparameter annehmen, von denen einer der Name des Benutzers ist, als der der Befehl ausgeführt werden soll. Die gebräuchlichste Art und Weise, wie sudo
verwendet wird, besteht darin, die Befehlszeilenoptionen wegzulassen und die Standardaktion zu verwenden. Dadurch wird der Befehl effektiv als Root-Benutzer ausgeführt.
Um sudo
auf diese Weise zu verwenden, ist eine spezielle Genehmigung erforderlich. Nur die Privilegierten können sudo
verwenden. Wenn Sie eine moderne Linux-Distribution installieren, werden Sie aufgefordert, ein Root-Passwort einzurichten, das Sie mit sudo
verwenden können. Die Berechtigung dazu wird dem regulären Benutzer erteilt, den Sie während der Installation erstellen. Dies ist die bevorzugte Methode, um den Zugriff auf die Fähigkeiten des Root-Benutzers zu handhaben. Der alte Weg bestand darin, einen Root-Benutzer zu erstellen und sich als dieser anzumelden, um Ihr System zu verwalten.
Dies war ein gefährliches Szenario. Es war leicht zu vergessen – oder zu faul dazu – sich als normaler Benutzer abzumelden und wieder anzumelden, wenn Sie keine Root-Rechte mehr benötigten. Alle Fehler, die Sie im Terminalfenster als root gemacht haben, würden ausgeführt werden, egal wie drastisch sie sind. Dinge, die von der Shell blockiert würden, wenn ein normaler Benutzer versuchen würde, sie auszuführen, würden ohne Frage ausgeführt, wenn root sie anforderte. Die Verwendung des Root-Kontos anstelle eines regulären Kontos ist ebenfalls ein Sicherheitsrisiko.
Die Verwendung von sudo
fokussiert den Geist. Sie betreten dieselben gefährlichen Gewässer, aber Sie entscheiden sich bewusst dafür und gehen hoffentlich sehr vorsichtig vor. Sie rufen Ihren Superuser-Status nur auf, wenn Sie etwas tun müssen, das ihn benötigt.
Wenn Sie anderen Benutzern den Root-Zugriff freigeben, möchten Sie sicher sein, dass sie sich genauso um sie kümmern wie Sie. Sie wollen nicht, dass sie rücksichtslos oder spekulativ Befehle ausführen. Die Gesundheit und das Wohlergehen Ihrer Linux-Installation hängen davon ab, dass sich privilegierte Benutzer respektvoll und verantwortungsbewusst verhalten.
Hier sind mehrere Möglichkeiten, ihre Root-Nutzung zu überwachen.
Die auth.log-Datei
Einige Distributionen führen ein Authentifizierungsprotokoll in einer Datei namens „auth.log“. Mit dem Aufkommen und der schnellen Einführung von systemd
wurde die Datei „auth.log“ nicht mehr benötigt. Der systemd-journal
Daemon konsolidiert die Systemprotokolle in einem damals neuen Binärformat, und journalctl
bietet Ihnen eine Möglichkeit, die Protokolle zu untersuchen oder abzufragen.
Wenn Sie eine „auth.log“-Datei auf Ihrem Linux-Computer haben, befindet sie sich wahrscheinlich im Verzeichnis „/var/log/“, obwohl bei einigen Distributionen Dateiname und Pfad „/var/log/audit/audit .Protokoll."
Sie können die Datei so in less
öffnen. Denken Sie daran, den Pfad und den Dateinamen an Ihre Distribution anzupassen, und seien Sie darauf vorbereitet, falls Ihr Linux nicht einmal eine Authentifizierungsdatei erstellt.
Dieser Befehl funktionierte unter Ubuntu 22.04.
weniger /var/log/auth.log
Die Protokolldatei wird geöffnet, und Sie können durch die Datei blättern oder die in Less integrierte Suchfunktion verwenden, um nach „sudo“ zu suchen.
Selbst wenn Sie die Suchfunktionen von less
verwenden, kann es einige Zeit dauern, bis Sie die sudo
-Einträge finden, an denen Sie interessiert sind.
Angenommen, wir möchten sehen, wofür eine Benutzerin namens mary
sudo
verwendet hat. Wir können die Protokolldatei mit grep
nach Zeilen mit „sudo“ durchsuchen und dann die Ausgabe erneut durch grep
und nach Zeilen mit „mary“ darin suchen.
Beachten Sie das sudo
vor grep und vor dem Namen der Protokolldatei.

sudo grep sudo /var/log/auth.log | Grep "Maria"
Dies gibt uns Zeilen, die „sudo“ und „mary“ enthalten.
Wir können sehen, dass die Benutzerin mary
um 15:25 Uhr sudo
-Berechtigungen erhalten hat und um 15:27 Uhr die fstab
-Datei in einem Editor öffnet. Das ist die Art von Aktivität, die definitiv einen tieferen Tauchgang rechtfertigt, beginnend mit einem Chat mit dem Benutzer.
Verwenden von journalctl
Die bevorzugte Methode auf systmd
-basierten Linux-Distributionen ist die Verwendung des journalctl
zum Überprüfen von Systemprotokollen.
Wenn wir den Namen eines Programms an journalctl
, durchsucht es die Protokolldateien nach Einträgen, die Verweise auf dieses Programm enthalten. Da sudo
eine Binärdatei ist, die sich unter „/usr/bin/sudo“ befindet, können wir diese an journactl
. Die Option -e
(Pager-Ende) weist journalctl
an, den Standard-Datei-Pager zu öffnen. Normalerweise wird dies less
sein. Die Anzeige wird automatisch nach unten gescrollt, um die neuesten Einträge anzuzeigen.
sudo journalctl -e /usr/bin/sudo
Die Protokolleinträge, die sudo
enthalten, sind in less aufgeführt.
Scrollen Sie mit der „Pfeil nach rechts“-Taste nach rechts, um den Befehl anzuzeigen, der bei jedem der Aufrufe von sudo
verwendet wurde. (Oder strecken Sie Ihr Terminalfenster, sodass es breiter wird.)
Und da die Ausgabe in less
angezeigt wird, können Sie nach Text wie Befehlsnamen, Benutzernamen und Zeitstempeln suchen.
RELATED: So verwenden Sie journalctl zum Lesen von Linux-Systemprotokollen
Verwenden des GNOME-Protokolldienstprogramms
Grafische Desktop-Umgebungen enthalten normalerweise eine Möglichkeit zum Überprüfen von Protokollen. Wir sehen uns das Dienstprogramm GNOME logs an. Um auf das Protokolldienstprogramm zuzugreifen, drücken Sie die „Super“-Taste links neben der „Leertaste“.
Geben Sie „Protokolle“ in das Suchfeld ein. Das Symbol „Protokolle“ wird angezeigt.
Klicken Sie auf das Symbol, um die Anwendung „Protokolle“ zu starten.
Durch Klicken auf die Kategorien in der Seitenleiste werden die Protokollmeldungen nach Meldungstyp gefiltert. Um eine genauere Auswahl zu treffen, klicken Sie in der Seitenleiste auf die Kategorie „Alle“ und dann auf das Lupensymbol in der Symbolleiste. Geben Sie einen Suchtext ein. Wir werden nach „sudo“ suchen.
Die Liste der Ereignisse wird gefiltert, um nur die Ereignisse anzuzeigen, die sich auf den Befehl sudo
beziehen. Ein kleiner grauer Block am Ende jeder Zeile enthält die Anzahl der Einträge in dieser Ereignissitzung. Klicken Sie auf eine Zeile, um sie zu erweitern.
Wir haben auf die oberste Zeile geklickt, um die Details der 24 Einträge in dieser Sitzung anzuzeigen.
Mit ein wenig Scrollen können wir dieselben Ereignisse sehen, die wir gesehen haben, als wir den Befehl journalctl
verwendet haben. Die unerklärliche Bearbeitungssitzung der Benutzerin mary
an der fstab
-Datei ist schnell gefunden. Wir hätten nach „mary“ suchen können, aber das würde andere Einträge als ihre Verwendung von sudo
beinhalten.
Nicht jeder benötigt Root-Zugriff
Wo es eine echte, vernünftige Anforderung gibt, kann es sinnvoll sein, anderen Benutzern sudo
-Berechtigungen zu erteilen. Ebenso ist es nur sinnvoll, ihre Verwendung – oder ihren Missbrauch – dieser Befugnisse zu überprüfen, insbesondere kurz nachdem sie ihnen gegeben wurden.