Das traditionell root genannte Konto besitzt die UID 0 und weitreichende Befugnisse innerhalb seines Sicherheitskontexts. Verwende für die tägliche Arbeit ein unprivilegiertes Konto und erhöhe Rechte nur für einen bestimmten administrativen Zweck, den du verstehst.
Benutzerverwaltung · Lektion 2
root
Erfahre, wie su, sudo und sudoers-Richtlinien einen kontrollierten Zugriff auf privilegierte Identitäten ermöglichen.
Mit su eine Shell als anderer Benutzer starten
su, kurz für substitute user, startet eine Shell oder einen Befehl mit der Identität eines anderen Kontos. Ohne Benutzernamen ist root das Standardziel:
$ su
Die Authentifizierung wird durch PAM und lokale Richtlinien gesteuert. Ein System kann nach dem Passwort des Zielkontos fragen, den Zugriff auf su einschränken oder das root-Passwort gesperrt lassen. Gehe nicht davon aus, dass die Kenntnis eines Passworts die einzige Voraussetzung ist.
Ein einfaches su wechselt die Identität und behält dabei einen größeren Teil der aktuellen Umgebung bei. su - USER, auch als su --login USER geschrieben, startet eine Shell im Anmeldestil und richtet eine Umgebung ein, die einer frischen Anmeldung am Zielkonto näherkommt:
$ su - operator
Beende die Subshell, sobald die Arbeit für das Zielkonto abgeschlossen ist.
Welcher Befehl fordert eine Shell im Anmeldestil als Benutzer operator an?
Einen bestimmten Befehl mit sudo ausführen
sudo COMMAND fordert eine Autorisierung durch die Richtlinie an, um einen Befehl als Zielbenutzer auszuführen, standardmäßig gewöhnlich als root. Mit -u USER kannst du ein anderes Ziel anfordern:
$ sudo -u postgres id
Das bedeutet nicht, dass die Anfrage genehmigt wird. Die sudo-Richtlinie berücksichtigt den aufrufenden Benutzer, den Host, die Zielidentität, den Befehl und weitere Bedingungen. Je nach Konfiguration kann die Authentifizierung das Passwort des aufrufenden Benutzers, einen anderen Mechanismus oder überhaupt keine Abfrage verwenden.
Bevorzuge nach Möglichkeit einen einzelnen, eng begrenzten administrativen Befehl gegenüber einer langlebigen privilegierten Shell. Der kleinere Umfang verringert das Risiko, dass versehentliche Befehle mit erhöhten Rechten ausgeführt werden.
Was fordert sudo -u postgres id an?
Dauerhafte privilegierte Shells vermeiden
Befehle wie su -, sudo -s oder sudo -i können eine privilegierte Shell erzeugen, wenn die Richtlinie dies erlaubt. Jeder spätere Befehl in dieser Shell kann bis zu ihrem Beenden erhöhte Auswirkungen haben. Fehlerhafte Pfade, ungeprüfte Skripte und Shell-Erweiterungen werden dadurch gefährlicher.
Das Auditverhalten hängt von der Konfiguration ab. sudo protokolliert Aufrufe häufig, doch ein einzelner protokollierter Shell-Start liefert nicht automatisch eine vollständige Aufzeichnung jedes in dieser Shell eingegebenen Befehls. Shell-Verlauf, System-Auditing und sudo-E/A-Protokollierung sind getrennte Mechanismen mit eigenen Richtlinien.
Warum ist eine langlebige root-Shell riskanter, als jeweils nur einen verstandenen Befehl mit erhöhten Rechten auszuführen?
sudo-Autorisierung überprüfen
Führe sudo -l aus, um aufzulisten, was das aktuelle Konto gemäß der aktiven Richtlinie anfordern darf:
$ sudo -l
Prüfe Befehlspfade, erlaubte Zielbenutzer und Einschränkungen für Argumente. Eine weit gefasst wirkende Regel solltest du nicht als Erlaubnis für sachfremde Arbeiten behandeln.
Welcher Befehl listet die sudo-Berechtigungen auf, die dem aktuell aufrufenden Benutzer zur Verfügung stehen?
sudoers-Richtlinien sicher bearbeiten
Die standardmäßige sudo-Richtlinie liest gewöhnlich /etc/sudoers und kann Dateien unter /etc/sudoers.d/ einbinden. Andere Richtlinienquellen sind möglich. Die Syntax steuert weit mehr als eine einfache Liste von Benutzern und Gruppen.
Verwende für Richtlinienänderungen visudo, weil es die Datei sperrt und ihre Syntax vor der Installation überprüft:
$ sudo visudo
Gib für eine ergänzende Datei ihren genauen Pfad an:
$ sudo visudo -f /etc/sudoers.d/application-admins
Bearbeite sudoers nicht mit einer gewöhnlichen Umleitung oder einem Editor-Arbeitsablauf ohne Validierung. Ein Syntax- oder Berechtigungsfehler kann den administrativen Zugriff entfernen. Halte beim Ändern einer entfernten Autorisierung einen weiteren verifizierten Wiederherstellungsweg bereit.
Welches Werkzeug solltest du verwenden, um die sudoers-Hauptrichtlinie zu bearbeiten und ihre Syntax zu prüfen?
Probiere dieses praktische Lab aus, um die delegierte Administration in einer kontrollierten Umgebung zu üben:
- Benutzerkonten und sudo-Berechtigungen unter Linux konfigurieren - Übe das Durchsetzen von Passwortrichtlinien, das Sperren und Entsperren von Benutzerkonten, das Absichern des root-Kontos und das Gewähren administrativer Rechte – alles unmittelbar mit der Verwaltung des Superuser-Zugriffs verbunden.
Lektion abgeschlossen
Sie haben root abgeschlossen
Du kannst nun den Identitätswechsel von der richtliniengesteuerten Befehlsdelegation unterscheiden.
Verwende
su - USERnur, wenn eine Ziel-Shell im Anmeldestil beabsichtigt ist.Fordere mit
-u USERein bestimmtes sudo-Ziel an.Verbringe möglichst wenig Zeit in einer privilegierten Shell.
Überprüfe wirksame sudo-Regeln mit
sudo -l.Bearbeite sudoers-Richtlinien ausschließlich mit
visudo.
Lernfortschritt speichern
Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.
Kostenloses Konto erstellen