So überprüfen Sie die Verwendung des sudo-Befehls unter Linux

Veröffentlicht: 2022-08-24
Linux-Laptop mit einer Bash-Eingabeaufforderung
fatmawati achmad zaenuri/Shutterstock.com

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.

So steuern Sie den sudo-Zugriff unter Linux
RELATED So steuern Sie den sudo-Zugriff unter Linux

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 

Betrachten Sie die Datei /var/log/auth.log mit less

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.

Der Inhalt der Datei /var/log/auth.log wird in less angezeigt

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" 

Verwendung von grep zum Herausfiltern von Einträgen, die Mary und Sudo erwähnen

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 

Verwenden von journalctl, um nach Einträgen zu suchen, die sudo erwähnen

Die Protokolleinträge, die sudo enthalten, sind in less aufgeführt.

journalctl zeigt Einträge an, die sudo im Less-Datei-Viewer enthalten

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.)

Scrollen Sie seitwärts, um die Befehle anzuzeigen, die mit sudo verwendet wurden

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.

Die GNOME-Protokollanwendung

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.

Suchen nach Einträgen, die sudo in der GNOME-Protokollanwendung enthalten

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.

Der graue Block, der die Anzahl der Einträge in einer Sudo-Sitzung enthält

Wir haben auf die oberste Zeile geklickt, um die Details der 24 Einträge in dieser Sitzung anzuzeigen.

Die Details der Ereignisse werden in einer erweiterten Ansicht angezeigt

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.