Warum hat Ubuntu ein deaktiviertes Root-Konto?

57

Ubuntu deaktiviert die root-Anmeldung aus "Sicherheitsgründen". Allerdings scheint es mir, dass es bei der Sicherheit überhaupt nicht hilft.

Wenn es einem Angreifer gelingt, Ihr Anmeldekennwort für Ubuntu abzurufen, verfügt er auch über das Super-User-Kennwort, da es mit dem Anmeldekennwort identisch ist.

Wenn jedoch das root-Passwort erforderlich ist, hilft es dem Eindringling nicht viel, sich einzuloggen - stimmt das nicht?

Im Grunde möchte ich Folgendes wissen: Warum hat Ubuntu das root-Passwort deaktiviert? Was sind die Sicherheitsgründe?

Bitte antworten Sie nicht so, wie Sie es für den Grund gehalten haben - ich suche nach einer Antwort aus offiziellen Quellen oder einem Link zu ihnen.

Sag mir warum
quelle
6
Sehen Sie, ob dies hilft.
Mitch
5
Die Gründe für die Verwendung von sudo sind die gleichen wie der Grund, warum sudo ursprünglich erstellt wurde.
Thorbjørn Ravn Andersen
2
Canonical ist der Ansicht, dass dies das engste Gleichgewicht zwischen Benutzerfreundlichkeit und Sicherheit für Windows- und OSX-Benutzer darstellt, die keine Vorkenntnisse in der Systemadministration haben. Der springende Punkt bei einer Desktop-Distribution ist, Leute anzusprechen, die nicht per se etwas über Linux lernen möchten , aber in der Lage sein möchten, Dinge zu finden, die sie ausführen möchten, auf sie zu klicken und sie ausführen zu lassen. In dem Moment, in dem ein "normaler" Benutzer neugierig wird, plötzlich mehr als nur Web / Mail / Pr0n / Spiele zu machen, kann Ubuntu ein Tor zu all dem coolen Unixy-Zeug sein, von dem er gehört hat (einschließlich "Aktivieren" von root - es war schon immer da versuchen sudo su).
zxq9,
1
Wenn jemand Ihr Konto pwnt, kann er das Root-Passwort erfassen, während Sie es eingeben, falls Sie jemals suvon Ihrem Konto zu root wechseln . Ihr Hinweis zur Rechteerweiterung gilt nur, wenn Sie sich als root auf einer separaten Konsole anmelden und niemals als root etwas tun, das Dateien vertraut, auf die Ihr normales Konto Schreibzugriff hat. Wie die vorhandenen Antworten besagen, besteht einer der Hauptgründe darin, Neulinge davon abzuhalten, root als Konto zu betrachten, bei dem Sie sich anmelden und das Sie verwenden sollten.
Peter Cordes
2
Siehe auch Welches ist der sicherste Weg, um Root-Rechte zu erhalten: sudo, su oder login? unter Unix / Linux Stack Exchange.
Mattdm

Antworten:

81

Mitch hat einen guten Link im Kommentar gepostet: Warum ist es schlecht, sich als root anzumelden? und die Debian-Site hat die wichtigsten Vorteile, die in ihrem Wiki aufgeführt sind :

Warum sudo?

Die Verwendung sudoist aus mehreren Gründen besser (sicherer) als das Öffnen einer Sitzung als Root:

  • Niemand muss das root-Passwort kennen ( sudofragt nach dem Passwort des aktuellen Benutzers). Einzelnen Benutzern können vorübergehend zusätzliche Berechtigungen gewährt und dann entzogen werden, ohne dass das Kennwort geändert werden muss.

  • Es ist einfach, nur die Befehle auszuführen, für die spezielle Berechtigungen erforderlich sind sudo. In der übrigen Zeit arbeiten Sie als nichtprivilegierter Benutzer, wodurch der durch Fehler verursachte Schaden verringert wird.

  • Überwachung / Protokollierung: Wenn ein sudoBefehl ausgeführt wird, werden der ursprüngliche Benutzername und der Befehl protokolliert.

Aus den oben genannten Gründen ist das Wechseln zu root mit sudo -i(oder sudo su) normalerweise veraltet, da die oben genannten Funktionen abgebrochen werden.

In Bezug auf Ubuntu Die Vor- und Nachteile sind in unserem Wiki aufgeführt :

Vorteile der Verwendung von sudo

Ubuntu bietet eine Reihe von Vorteilen, bei denen Root-Anmeldungen standardmäßig deaktiviert bleiben, darunter:

  • Das Installationsprogramm hat weniger Fragen zu stellen. Benutzer müssen sich kein zusätzliches Kennwort für die gelegentliche Verwendung merken (z. B. das Root-Kennwort). Wenn sie dies tun, werden sie es wahrscheinlich vergessen (oder es unsicher aufzeichnen, so dass jeder leicht in ihr System eindringen kann).

  • Standardmäßig wird die interaktive Anmeldung "Ich kann alles" vermieden. Sie werden aufgefordert, ein Kennwort einzugeben, bevor größere Änderungen vorgenommen werden können, die Sie über die Konsequenzen Ihrer Handlungen nachdenken lassen sollten.

  • sudo fügt einen Protokolleintrag des Befehls run (in /var/log/auth.log) hinzu. Wenn Sie es vermasseln, können Sie zurückgehen und sehen, welche Befehle ausgeführt wurden.

  • Auf einem Server weiß jeder Cracker, der versucht, sich brachial durchzusetzen, dass er ein Konto mit dem Namen root hat, und versucht dies zuerst. Was sie nicht wissen, sind die Benutzernamen Ihrer anderen Benutzer. Da das Kennwort des Root-Kontos gesperrt ist, wird dieser Angriff im Wesentlichen bedeutungslos, da es überhaupt kein Kennwort gibt, das geknackt oder erraten werden könnte.

  • Ermöglicht die einfache Übertragung von Administratorrechten durch Hinzufügen und Entfernen von Benutzern zu Gruppen. Wenn Sie ein einzelnes Root-Passwort verwenden, besteht die einzige Möglichkeit, die Autorisierung von Benutzern aufzuheben, darin, das Root-Passwort zu ändern.
  • sudo kann mit einer detaillierteren Sicherheitsrichtlinie eingerichtet werden. Das Kennwort für das Root-Konto muss nicht für alle Benutzer freigegeben werden, die eine oder mehrere Verwaltungsaufgaben auf dem System ausführen müssen (siehe den vorherigen Aufzählungspunkt).

  • Die Authentifizierung läuft nach kurzer Zeit automatisch ab (kann auf so wenig wie gewünscht oder auf 0 gesetzt werden). Wenn Sie also das Terminal verlassen, nachdem Sie Befehle mit sudo als root ausgeführt haben, wird ein root-Terminal nicht auf unbestimmte Zeit geöffnet bleiben.

Nachteile der Verwendung von sudo

Obwohl die Vorteile der Verwendung von sudo für Desktops groß sind, gibt es mögliche Probleme, die beachtet werden müssen:

  • Das Umleiten der Ausgabe von Befehlen, die mit sudo ausgeführt werden, erfordert einen anderen Ansatz. Zum Beispiel sudo ls > /root/somefile wird Consider nicht funktionieren, da es die Shell ist, die versucht, in diese Datei zu schreiben. Mit können Sie Inhalte ls | sudo tee -a /root/somefileanhängen oder ls | sudo tee /root/somefileüberschreiben. Sie können den gesamten Befehl auch an einen unter sudo ausgeführten Shell-Prozess übergeben, in den die Datei mit Root-Berechtigungen geschrieben werden soll, z sudo sh -c "ls > /root/somefile".

  • In vielen Büroumgebungen ist der EINZIGE lokale Benutzer auf einem System root. Alle anderen Benutzer werden mithilfe von NSS-Techniken wie nss-ldap importiert. Um eine Workstation einzurichten oder zu reparieren, ist im Falle eines Netzwerkfehlers, bei dem nss-ldap beschädigt ist, root erforderlich. Dies führt dazu, dass das System unbrauchbar bleibt, es sei denn, es weist Risse auf. Hier ist ein zusätzlicher lokaler Benutzer oder ein aktiviertes Root-Passwort erforderlich. Das lokale Benutzerkonto sollte sein $ HOME auf einer lokalen Festplatte haben, nichtauf NFS (oder einem anderen Netzwerkdateisystem) und ein .profile / .bashrc, das keine Dateien auf NFS-Mounts referenziert. Dies ist normalerweise für root der Fall. Wenn Sie jedoch ein Rettungskonto ohne Rootberechtigung hinzufügen, müssen Sie diese Vorsichtsmaßnahmen manuell treffen. Der Vorteil der Verwendung eines lokalen Benutzers mit sudo besteht jedoch darin, dass Befehle einfach nachverfolgt werden können, wie in den obigen Vorteilen erwähnt.

Und wir hatten es immer (ab der ersten Veröffentlichung).


Die älteste Referenz, die ich gefunden habe, spricht über 4.10 mit "sudo"

SHUTTLEWORTH STARTET DEBIAN-BASIERTES UBUNTU LINUX

... Das Debian-basierte Ubuntu Linux enthält Gnome 2.8, Kernel 2.6.8.1, OpenOffice.org 1.1.2 und wird mit einer textbasierten, aber einfachen Installationsprozedur geliefert. Ubuntu hat den Root-Benutzer deaktiviert, der Sudo bevorzugt, ähnlich wie Mac OSX ...

Rinzwind
quelle
Fehlen einiger Sicherheitsfunktionen aus den Vorteilen : (i.) (Für die grafische Benutzeroberfläche ) Niemand kann ohne interaktiven lokalen Zugriff (Eingabe eines Kennworts über die Tastatur) erhöhte Berechtigungen erlangen . (ii.) Das "erhöhte Privileg erteilte für den sudo'd Befehl (e), nicht nur jede Aufgabe / Fäden für den Benutzer (oder Wurzel).
David6
Dies scheint die in der ursprünglichen Frage aufgeworfenen Punkte zu ignorieren und es mit vielen anderen Informationen zu verschleiern, warum es gut ist?
Paul23
6

Ich glaube, dass das, was auf der Hilfeseite steht, klar und objektiv genug ist.

Ubuntu ist "für jedermann" und obwohl Sie, wenn Sie gut genug sind, keinen Root-Zugriff benötigen, um Ihren Computer zu beschädigen, brauchen Sie es fast gar nicht (und Sie wissen, wie Sie es einfach aktivieren können).
Das Problem liegt also nicht bei Leuten, die "gut genug" sind, sondern bei allen anderen, die möglicherweise von einer anderen Computerwelt zu Linux kommen und die erste Auswirkung hat Ubuntu (und wir sind viele).

Wenn Sie kein Experte sind und nicht genau wissen, was es rootist und wie Sie richtig damit umgehen sollen, möchten oder müssen Sie es nicht aktivieren (und riskieren beispielsweise, eine grafische Anmeldung damit durchzuführen).
Es ist viel besser zu lernen, wie man Dinge auf der sicheren Seite macht und dann auf einen härteren und gefährlicheren Pfad geht, als direkt mit dem harten Weg zu beginnen und dann Ihre Installation / Workstation zu beschädigen, frustriert zu werden und möglicherweise nicht in der Lage zu sein, einen vollständig funktionierenden Pfad wiederherzustellen System.
Vorbeugen ist im Allgemeinen viel besser als heilen.

dadexix86
quelle