Linux/Benutzer/Root: Unterschied zwischen den Versionen
K Dirkwagner verschob die Seite Root nach Linux/Root |
K Dirkwagner verschob die Seite Linux/Root nach Linux/Benutzer/Root |
(kein Unterschied)
|
Version vom 15. Dezember 2024, 10:49 Uhr
root - Benutzer mit vollständigem Zugriff auf ein Linux-System (Administrator)
Beschreibung
Das Root-Konto oder Superuser-Konto ist das Benutzerkonto, das bei der Installation eines Betriebssystems angelegt werden muss und mit weitreichendsten Zugriffsrechten ausgestattet ist
Dieses Konto ist nicht für die alltägliche Verwendung des Systems gedacht, sondern nur für besondere Verwaltungsaufgaben, weil es mit umfassenden Risiken verbunden ist
Unixoide Systeme
Auf unixoiden Systemen wird jedes Benutzerkonto mit einer Zahl assoziiert: der sogenannten „UID“ (User ID)
- Das erste Benutzerkonto auf jedem System hat die UID 0 und besitzt auf historischen Unix-Systemen alle Rechte über die Ressourcen des Systems
- Da dieses Konto für die Installation des Rechners notwendig ist und daher alle Dateien und Verzeichnisse aus diesem Benutzerkonto hervorgehen, kann man hier von einer „Wurzel“ (englisch root) sprechen
- Nach dem Beenden der Installation kann man dieses Konto zur Verwaltung (Administration) des Systems verwenden
- Um als root zu arbeiten, kann man sich entweder entsprechend einloggen oder auf der Unix-Shell mit dem Befehl
su
die Identität wechseln
Moderne Unix-Systeme wie z. B. Solaris implementieren feingranulare Rechtesysteme
- Auf solchen Systemen bedeutet die Erlangung der UID 0 nicht zwangsläufig auch die Erlangung sämtlicher Rechte
Der Benutzer mit den Root-Rechten hat als einziger Benutzer auf einem Unix-Computer uneingeschränkte Rechte, was sich insbesondere bei Dateiverwaltung (Dateirechte etc.) und Benutzung von Systemressourcen (Arbeitsspeicher, Geräte) auszeichnet
- Eine besondere Position wird dem root auch bei der Verwaltung des Kernels sowie der Prozesskontrolle eingeräumt: So kann der Root sämtliche Prozesse nach Belieben verändern und damit beispielsweise den Computer neu starten
- Bei einem Kernel, der dynamisch ladbare Module unterstützt, kann Root indirekt mit dem Kernelspace auf nächster Ebene agieren
Sollte ein böswilliger Cracker das Passwort des Benutzers Root herausfinden, so ist dieser vollständig kompromittiert
- Um im Anschluss an einen erfolgreichen Angriff die eigene Anwesenheit vor dem Systemadministrator zu verbergen, nutzen Angreifer sogenannte Rootkits
Üblicherweise unterscheidet sich die Eingabeaufforderung des Benutzers Root von der anderer Benutzer durch eine abschließende Raute (#) statt eines Dollarzeichens ($)
- Systemadministratoren sprechen in diesem Falle von einem Rootprompt
Debian und Ubuntu
Bei der Installation von Debian kann ebenfalls eine direkte Verwendung des Root-Kontos unterbunden werden
- Unter dem auf Debian basierenden Ubuntu gibt es bei der normalen Installation nicht einmal die Möglichkeit, anders zu verfahren
- Aus Sicherheitsgründen hat die Benutzergruppe admin dort aber keine weitergehenden Berechtigungen, als sudo auszuführen
- So können sich ihre Mitglieder zeitweilig die Rechte des Superusers verschaffen
- In der Regel wird sudo automatisch aufgerufen, sobald die Rechte des Superusers erforderlich sind
Es ist allerdings mittels des Befehls sudo passwd
jederzeit möglich, den Root-Account dauerhaft freizuschalten, indem man ihm ein gültiges Kennwort zuweist
macOS
Bei der Installation von macOS wird ein Konto für den Systemadministrator mit Namen root angelegt und eines für den Admin mit wählbarem Namen
- Bei macOS Server erhalten beide Konten dasselbe Passwort, während beim normalen macOS das Konto root kein Passwort erhält und gesperrt wird
- Dem Admin ist nicht nur einiges verwehrt, was für root möglich ist, sondern auch umgekehrt
toor
toor ist das rückwärts geschriebene Wort für root und stellt einen alternativen Root-Account dar, speziell auf BSD-Derivaten
- Das Konto hat ebenfalls die UID 0, unterscheidet sich aber durch eine andere Konfiguration, vor allem durch eine andere Shell vom Root-Konto
Üblicherweise hat ein Konto (normalerweise root) eine umfangreiche Shell (wie bash oder zsh), während der jeweils andere Account (normalerweise toor) nur eine minimale Shell hat
- Der Sinn dahinter ist, ein Konto mit Systemadministrationsfähigkeiten bereitzuhalten, selbst wenn die Standard-Shell des einen Kontos nicht mehr gestartet werden kann (wenn zum Beispiel die Partition, auf der die Shell liegt, nicht gemountet werden kann). „toor“ ist außerdem das Passwort für den root-Account bei den bekannten BackTrack Distributionen und bis Version 2020.1 auch bei Kali Linux
- Ab Version 2020.1 ist root nicht mehr das Standardkonto, sondern kali mit kali als Passwort
Microsoft
Während MS-DOS und das ursprüngliche Windows bis zur Millennium Edition (DOS-Linie bis Windows 9x) nur ein einziges Benutzerkonto zuließen, das zwangsläufig alle Berechtigungen hatte, unterstützt die Windows-NT-Linie mehrere Benutzerkonten mit unterschiedlichen Berechtigungen
- Das Root-Konto hat hier den Benutzernamen Administrator
- Allerdings existiert ein weiteres Benutzerkonto mit höheren Berechtigungen als denen des Administrators
- Dieses heißt SYSTEM, wird jedoch normalerweise nicht zur Administration des Computers benutzt
Das Benutzerkonto mit dem Namen Administrator ist auf dem Anmeldebildschirm in Windows XP standardmäßig nicht sichtbar, kann aber dennoch verwendet werden, indem der klassische Anmeldedialog, entweder über die Einstellungen oder durch zweimaliges Drücken der Tastenkombination {{#if:trim|Strg}} + {{#if:trim|Alt}} + {{#if:trim|Entf}}, auch bekannt als „Klammergriff“, auf dem Anmeldebildschirm aufgerufen wird Unter Windows Server 2008 R2 existiert ebenfalls ein Benutzerkonto mit dem Namen Administrator, der schon beim ersten Start des Systems nach der Installation eingerichtet werden muss und genauso auch bei Windows Server 2012 Standard/Datencenter die höchsten Privilegien besitzt
Root-Zugriff einschänken
Wenn ein Administrator aus diesen oder anderen Gründen Bedenken hat, Benutzern die Anmeldung als root zu gestatten, sollte
- das root-Passwort geheim gehalten werden und
- der Zugriff auf den Runlevel 1 oder den Einzelbenutzermodus sollte durch den Passwortschutz des Bootloaders verhindert werden (Bootloader-Passwörter)
- Es gibt vier verschiedene Möglichkeiten, wie ein Administrator sicherstellen kann, dass keine Root-Anmeldungen zulässig sind
Ändern der Root-Shell
Um zu verhindern, dass sich Benutzer direkt als Root anmelden, kann der Systemadministrator die Shell des Root-Kontos in der Datei /etc/passwd auf /sbin/nologin setzen
- Deaktivierung der Root-Shell
Auswirkungen | Keine Auswirkungen |
---|---|
Verhindert den Zugriff auf die Root-Shell und protokolliert alle derartigen Versuche
Folgende Programme können nicht auf das Root-Konto zugreifen
|
Programme, die keine Shell benötigen, wie FTP-Clients, E-Mail-Clients und viele Setuid-Programme
Folgende Programme werden „nicht" am Zugriff auf das Root-Konto gehindert
|
Deaktivieren des Root-Zugriffs über ein Konsolengerät (tty)
Um den Zugriff auf das Root-Konto weiter einzuschränken, können Administratoren die Root-Anmeldung an der Konsole deaktivieren, indem sie die Datei /etc/securetty bearbeiten
- In dieser Datei sind alle Geräte aufgeführt, bei denen eine Anmeldung des Root-Benutzers zulässig ist
- Wenn die Datei überhaupt nicht vorhanden ist, kann sich der Root-Benutzer über jedes Kommunikationsgerät im System anmelden, sei es über die Konsole oder eine Raw-Netzwerkschnittstelle
- Dies ist gefährlich, da sich ein Benutzer über Telnet als Root auf seinem Computer anmelden kann, wobei das Passwort im Klartext über das Netzwerk übertragen wird
Standardmäßig erlaubt die Datei /etc/securetty von Red Hat Enterprise Linux dem Root-Benutzer nur die Anmeldung an der physisch an den Computer angeschlossenen Konsole
- Um die Anmeldung des Root-Benutzers zu verhindern, entfernen Sie den Inhalt dieser Datei, indem Sie als Root den folgenden Befehl an einer Shell-Eingabeaufforderung eingeben
echo > /etc/securetty
Um die Unterstützung von securetty in den Anmeldungsmanagern KDM, GDM und XDM zu aktivieren, fügen Sie die folgende Zeile
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
zu den unten aufgeführten Dateien hinzu:
- /etc/pam.d/gdm
- /etc/pam.d/gdm-autologin
- /etc/pam.d/gdm-fingerprint
- /etc/pam.d/gdm-password
- /etc/pam.d/gdm-smartcard
- /etc/pam.d/kdm
- /etc/pam.d/kdm-np
- /etc/pam.d/xdm
- Warnung
- Eine leere /etc/securetty-Datei verhindert nicht, dass sich der Root-Benutzer über die OpenSSH-Tool-Suite remote anmeldet, da die Konsole erst nach der Authentifizierung geöffnet wird
- Deaktivieren von Root-Anmeldungen
Auswirkungen | Hat keine Auswirkungen |
---|---|
Verhindert den Zugriff auf das Root-Konto über die Konsole oder das Netzwerk
Der Zugriff auf das Root-Konto wird für die folgenden Programme verhindert
|
Programme, die sich nicht als root anmelden, aber administrative Aufgaben über setuid oder andere Mechanismen ausführen
Folgende Programme werden „nicht" am Zugriff auf das root-Konto gehindert
|
Deaktivieren von SSH-Anmeldungen als root
Um Anmeldungen als root über das SSH-Protokoll zu verhindern, bearbeiten Sie die Konfigurationsdatei des SSH-Daemons, /etc/ssh/sshd_config, und ändern Sie die Zeile, die lautet
#PermitRootLogin yes
wie folgt
PermitRootLogin no
- Deaktivieren von Root-SSH-Anmeldungen
Auswirkungen | Hat keine Auswirkungen |
---|---|
Verhindert den Root-Zugriff über die OpenSSH-Tool-Suite
|
Programme, die nicht Teil der OpenSSH-Tool-Suite sind |
PAM zur Einschränkung des Root-Zugriffs auf Dienste verwenden
PAM ermöglicht über das Modul /lib/security/pam_listfile.so eine hohe Flexibilität beim Ablehnen bestimmter Konten
- Der Administrator kann dieses Modul verwenden, um auf eine Liste von Benutzern zu verweisen, die sich nicht anmelden dürfen
- Um den Root-Zugriff auf einen Systemdienst zu beschränken, bearbeiten Sie die Datei für den Zieldienst im Verzeichnis /etc/pam.d/ und stellen Sie sicher, dass das Modul pam_listfile.so für die Authentifizierung erforderlich ist
Im Folgenden wird ein Beispiel dafür gegeben, wie das Modul für den vsftpd FTP-Server in der PAM-Konfigurationsdatei /etc/pam.d/vsftpd verwendet wird (das \-Zeichen am Ende der ersten Zeile ist „nicht" erforderlich, wenn die Anweisung in einer einzelnen Zeile steht)
auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers onerr=succeed
Hierdurch wird PAM angewiesen, die Datei /etc/vsftpd.ftpusers zu konsultieren und allen aufgeführten Benutzern den Zugriff auf den Dienst zu verweigern
- Der Administrator kann den Namen dieser Datei ändern und separate Listen für jeden Dienst führen oder eine zentrale Liste verwenden, um den Zugriff auf mehrere Dienste zu verweigern
Wenn der Administrator den Zugriff auf mehrere Dienste verweigern möchte, kann eine ähnliche Zeile zu den PAM-Konfigurationsdateien hinzugefügt werden, z. B. /etc/pam.d/pop und /etc/pam.d/imap für Mail-Clients oder /etc/pam.d/ssh für SSH-Clients
Weitere Informationen zu PAM finden Sie im Kapitel „Pluggable Authentication Modules (PAM)" im „Reference Guide"
- Deaktivieren von Root mit PAM
Auswirkungen | Hat keine Auswirkungen |
---|---|
Verhindert den Root-Zugriff auf Netzwerkdienste, die PAM-fähig sind
|
Programme und Dienste, die nicht PAM-fähig sind |
Anhang
Siehe auch
Links
Weblinks
- https://de.wikipedia.org/wiki/Root-Konto
- Microsoft TechNet: Warum Sie Ihren Computer nicht als Administrator ausführen sollten