Linux/Benutzer/Root: Unterschied zwischen den Versionen

Aus Foxwiki
Subpages:
 
(51 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''root''' - Benutzer mit vollständigem Zugriff auf ein Linux-System (Administrator)
'''Linux/Benutzer/Root''' - Benutzer mit vollständigem Zugriff auf ein Linux-System ([[Administrator]])


== Beschreibung ==
== Beschreibung ==
== Disable root access ==
; Root-Konto
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 (siehe [https://docs.redhat .com/en/documentation/red_hat_enterprise_linux/4/html/security_guide/s2-wstation-bootloader Abschnitt 4.2.2, „Bootloader-Passwörter"] für weitere Informationen zu diesem Thema)
Superuser
* Bei der Installation eines [[Betriebssystem]]s angelegtes [[Benutzerkonto]] mit Vollzugriff
* Nur für besondere [[Verwaltungsaufgaben]]
* Nicht für [[alltägliche Arbeiten]]
* Umfassende [[Risiken]]


Es gibt vier verschiedene Möglichkeiten, wie ein Administrator sicherstellen kann, dass keine Root-Anmeldungen zulässig sind
== Unixoide Systeme ==
Auf [[unixoid]]en 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 [[Betriebsmittel (Informatik)|Ressourcen]] des Systems
* Da dieses Konto für die Installation des [[Computer|Rechners]] notwendig ist und daher alle [[Datei]]en und [[Verzeichnis]]se aus diesem Benutzerkonto hervorgehen, kann man hier von einer „Wurzel“ (englisch ''root'') sprechen
* Nach dem Beenden der Installation kann man dieses Konto zur Verwaltung ([[Administrator (Rolle)|Administration]]) des Systems verwenden
* Um als ''root'' zu arbeiten, kann man sich entweder entsprechend [[einloggen]] oder auf der [[Unix-Shell]] mit dem Befehl <code>[[su (Unix)|su]]</code> die Identität wechseln


=== Ändern der Root-Shell ===
Moderne [[Unix]]-Systeme wie z.&nbsp;B.&nbsp;[[Solaris (Betriebssystem)|Solaris]] implementieren feingranulare Rechtesysteme
Um zu verhindern, dass sich Benutzer direkt als Root anmelden, kann der Systemadministrator die Shell des Root-Kontos in der Datei <tt>/etc/passwd</tt> auf <tt>/sbin/nologin</tt> setzen
* Auf solchen Systemen bedeutet die Erlangung der UID&nbsp;''0'' nicht zwangsläufig auch die Erlangung sämtlicher Rechte


; Deaktivierung der Root-Shell
Der Benutzer mit den Root-Rechten hat als einziger Benutzer auf einem Unix-Computer uneingeschränkte Rechte
{| class="wikitable"
* was sich insbesondere bei Dateiverwaltung ([[Dateiberechtigung|Dateirechte]] etc.) und Benutzung von Systemressourcen ([[Arbeitsspeicher]], [[Hardware|Geräte]]) auszeichnet
|-
! align=center| Auswirkungen
! align=center| Keine Auswirkungen
|-
|| Verhindert den Zugriff auf die Root-Shell und protokolliert alle derartigen Versuche
Folgende Programme können nicht auf das Root-Konto zugreifen
* <tt>login</tt>
* <tt>gdm</tt>
* <tt>kdm</tt>
* <tt>xdm</tt>
* <tt>su</tt>
* <tt>ssh</tt>
* <tt>scp</tt>
* <tt>sftp</tt>
|| 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
* <tt>sudo</tt>
* FTP-Clients
* E-Mail-Clients
|-
|}


== Deaktivieren des Root-Zugriffs über ein Konsolengerät (tty) ==
=== Kernel ===
Um den Zugriff auf das Root-Konto weiter einzuschränken, können Administratoren die Root-Anmeldung an der Konsole deaktivieren, indem sie die Datei <tt>/etc/securetty</tt> bearbeiten
* Eine besondere Position wird dem ''root'' auch bei der Verwaltung des [[Kernel (Betriebssystem)|Kernels]] sowie der [[Prozess (Informatik)|Prozesskontrolle]] eingeräumt
* In dieser Datei sind alle Geräte aufgeführt, bei denen eine Anmeldung des Root-Benutzers zulässig ist
* So kann der Root sämtliche Prozesse nach Belieben verändern und damit beispielsweise den Computer [[Booten|neu starten]]
* 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
* Bei einem Kernel, der dynamisch ladbare [[Modul (Software)|Module]] unterstützt, kann Root indirekt mit dem [[Kernelspace]] auf nächster Ebene agieren
* 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 <tt>/etc/securetty</tt> von Red Hat Enterprise Linux dem Root-Benutzer nur die Anmeldung an der physisch an den Computer angeschlossenen Konsole
=== Passwort ===
* 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
Sollte ein böswilliger [[Cracker (Computersicherheit)|Cracker]] das Passwort des Benutzers Root herausfinden, so ist dieser vollständig kompromittiert
echo > /etc/securetty
* Um im Anschluss an einen erfolgreichen Angriff die eigene Anwesenheit vor dem Systemadministrator zu verbergen, nutzen Angreifer sogenannte [[Rootkit]]s
Um die Unterstützung von <tt>securetty</tt> 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
=== Prompt ===
Üblicherweise unterscheidet sich die [[Prompt|Eingabeaufforderung]]
* Benutzers
* Root von der anderer Benutzer durch eine abschließende [[Rautezeichen|Raute]] (#)
* statt eines [[Dollarzeichen]]s ($)
* Systemadministratoren sprechen in diesem Falle von einem Rootprompt


zu den unten aufgeführten Dateien hinzu:
== Debian und Ubuntu ==
* <tt>/etc/pam.d/gdm</tt>
Bei der Installation von [[Debian]] kann ebenfalls eine direkte Verwendung des Root-Kontos unterbunden werden
* <tt>/etc/pam.d/gdm-autologin</tt>
* Unter dem auf Debian basierenden [[Ubuntu (Betriebssystem)|Ubuntu]] gibt es bei der normalen Installation nicht einmal die Möglichkeit, anders zu verfahren
* <tt>/etc/pam.d/gdm-fingerprint</tt>
* Aus Sicherheitsgründen hat die Benutzergruppe ''admin'' dort aber keine weitergehenden Berechtigungen, als ''[[sudo]]'' auszuführen
* <tt>/etc/pam.d/gdm-password</tt>
* So können sich ihre Mitglieder zeitweilig die Rechte des Superusers verschaffen
* <tt>/etc/pam.d/gdm-smartcard</tt>
* In der Regel wird ''sudo'' automatisch aufgerufen, sobald die Rechte des Superusers erforderlich sind
* <tt>/etc/pam.d/kdm</tt>
Es ist allerdings mittels des Befehls <code>sudo passwd</code> jederzeit möglich, den Root-Account dauerhaft freizuschalten, indem man ihm ein gültiges Kennwort zuweist
* <tt>/etc/pam.d/kdm-np</tt>
* <tt>/etc/pam.d/xdm</tt>


; Warnung
== macOS ==
: Eine leere <tt>/etc/securetty</tt>-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
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


; Deaktivieren von Root-Anmeldungen
== BSD-Unix ==
{|class="wikitable"
; toor
|-
''toor'' ist das rückwärts geschriebene Wort für ''root'' und stellt einen alternativen Root-Account dar, speziell auf [[Berkeley Software Distribution|BSD]]-Derivaten
! align=center| Auswirkungen
* Das Konto hat ebenfalls die UID 0, unterscheidet sich aber durch eine andere Konfiguration, vor allem durch eine andere Shell vom Root-Konto
! align=center| 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
* <tt>login</tt>
* <tt>gdm</tt>
* <tt>kdm</tt>
* <tt>xdm</tt>
* Andere Netzwerkdienste, die ein TTY öffnen
|| 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
* <tt>su</tt>
* <tt>sudo</tt>
* <tt>ssh</tt>
* <tt>scp</tt>
* <tt>sftp</tt>
|-
|}


== Deaktivieren von SSH-Anmeldungen als root ==
Ü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


Um Anmeldungen als root über das SSH-Protokoll zu verhindern, bearbeiten Sie die Konfigurationsdatei des SSH-Daemons, <tt>/etc/ssh/sshd_config</tt>, und ändern Sie die Zeile, die lautet
== Microsoft ==
#PermitRootLogin yes
Während [[MS-DOS]] und das ursprüngliche [[Microsoft Windows|Windows]] bis zur [[Microsoft Windows Millennium Edition|Millennium Edition]] (DOS-Linie bis [[Windows&nbsp;9x]]) nur ein einziges Benutzerkonto zuließen, das zwangsläufig alle Berechtigungen hatte, unterstützt die [[Microsoft Windows NT|Windows-NT]]-Linie mehrere Benutzerkonten mit unterschiedlichen Berechtigungen
wie folgt
* Das Root-Konto hat hier den Benutzernamen ''Administrator''
PermitRootLogin no
* 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 [[Microsoft Windows XP|Windows&nbsp;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]]
{{Taste|[[Steuerungstaste|Strg]]}}&nbsp;+ {{Taste|[[Alt (Taste)|Alt]]}}&nbsp;+ {{Taste|[[Entfernen (Taste)|Entf]]}}, auch bekannt als „[[Klammergriff]]“, auf dem Anmeldebildschirm aufgerufen wird


; Deaktivieren von Root-SSH-Anmeldungen
Unter [[Microsoft Windows Server 2008 R2|Windows Server 2008&nbsp;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 [[Microsoft Windows Server 2012|Windows Server 2012 Standard/Datencenter]] die höchsten Privilegien besitzt
{| class="wikitable"
|-
! align=center| Auswirkungen
! align=center| Hat keine Auswirkungen
|-
|| Verhindert den Root-Zugriff über die OpenSSH-Tool-Suite
* Folgende Programme können nicht auf das Root-Konto zugreifen
* <tt>ssh</tt>
* <tt>scp</tt>
* <tt>sftp</tt>
|| Programme, die nicht Teil der OpenSSH-Tool-Suite sind
|-
|}


== PAM zur Einschränkung des Root-Zugriffs auf Dienste verwenden ==
<noinclude>
PAM ermöglicht über das Modul <tt>/lib/security/pam_listfile.so</tt> 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 <tt>/etc/pam.d/</tt> und stellen Sie sicher, dass das Modul <tt>pam_listfile.so</tt> für die Authentifizierung erforderlich ist
 
Im Folgenden wird ein Beispiel dafür gegeben, wie das Modul für den <tt>vsftpd</tt> FTP-Server in der PAM-Konfigurationsdatei <tt>/etc/pam.d/vsftpd</tt> verwendet wird (das <tt>\</tt>-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 <tt>/etc/vsftpd.ftpusers</tt> 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.&nbsp;B.&nbsp;<tt>/etc/pam.d/pop</tt> und <tt>/etc/pam.d/imap</tt> für Mail-Clients oder <tt>/etc/pam.d/ssh</tt> für SSH-Clients
 
Weitere Informationen zu PAM finden Sie im Kapitel „Pluggable Authentication Modules (PAM)" im „Reference Guide"


; Deaktivieren von Root mit PAM
{| class="wikitable"
|-
! align=center| Auswirkungen
! align=center| Hat keine Auswirkungen
|-
|| Verhindert den Root-Zugriff auf Netzwerkdienste, die PAM-fähig sind
* Der Zugriff auf das Root-Konto wird für die folgenden Dienste verhindert
* <tt>login</tt>
* <tt>gdm</tt>
* <tt>kdm</tt>
* <tt>xdm</tt>
* <tt>ssh</tt>
* <tt>scp</tt>
* <tt>sftp</tt>
* FTP-Clients
* E-Mail-Clients
* Alle PAM-fähigen Dienste
|| Programme und Dienste, die nicht PAM-fähig sind
|-
|}
<noinclude>
== Anhang ==
== Anhang ==
=== Siehe auch ===
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
==== Links ====
==== Links ====
===== Weblinks =====
===== Weblinks =====
# https://de.wikipedia.org/wiki/Root-Konto
# [http://technet.microsoft.com/de-de/library/cc780702.aspx Microsoft TechNet: Warum Sie Ihren Computer nicht als Administrator ausführen sollten]
{{DISPLAYTITLE:root}}
{{DISPLAYTITLE:root}}
{{DEFAULTSORT:root}}
{{DEFAULTSORT:root}}

Aktuelle Version vom 19. Dezember 2024, 20:00 Uhr

Linux/Benutzer/Root - Benutzer mit vollständigem Zugriff auf ein Linux-System (Administrator)

Beschreibung

Root-Konto

Superuser

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

Kernel

  • 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

Passwort

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

Prompt

Üblicherweise unterscheidet sich die Eingabeaufforderung

  • 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

BSD-Unix

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


Anhang

Siehe auch

Links

Weblinks
  1. https://de.wikipedia.org/wiki/Root-Konto
  2. Microsoft TechNet: Warum Sie Ihren Computer nicht als Administrator ausführen sollten