TL; DR: Tun Sie Dinge als root nur, wenn Sie müssen. sudo
macht das ziemlich einfach. Wenn Sie Root-Anmeldungen aktivieren, können Sie diese Regel trotzdem befolgen. Sie müssen nur vorsichtig sein. Obwohl das Aktivieren von Root-Anmeldungen nicht wirklich unsicher ist, müssen Sie Root-Anmeldungen nicht aktivieren, da dies der Fall ist sudo
.
Es gibt hier wirklich zwei verwandte Fragen.
- Warum ist es schlecht, sich als root anzumelden, wenn man seinen Computer täglich benutzt (Surfen im Internet, E-Mail, Textverarbeitung, Spiele usw.)?
- Warum deaktiviert Ubuntu standardmäßig alle Root-Anmeldungen und verwendet
sudo
und polkit , damit Administratoren bestimmte Befehle als Root ausführen können?
Warum nicht immer alles als root ausführen?
Die meisten anderen Antworten decken dies ab. Es kommt darauf an:
- Wenn Sie Root-Funktionen für Aufgaben verwenden, für die diese nicht erforderlich sind, und am Ende etwas tun, das Sie nicht tun wollten, können Sie Ihr System auf eine Weise ändern oder beschädigen, die Sie nicht möchten.
- Wenn Sie ein Programm als Root ausführen, wenn Sie es nicht benötigen, und es letztendlich etwas tut, was Sie nicht beabsichtigt haben - zum Beispiel aufgrund einer Sicherheitslücke oder eines anderen Fehlers -, kann es sich ändern oder schaden Ihr System auf eine Weise, die Sie nicht wollen.
Es ist wahr, dass Sie Schaden anrichten können, auch wenn Sie nichts als root tun. Sie können beispielsweise alle Dateien in Ihrem eigenen Basisverzeichnis löschen, das normalerweise alle Ihre Dokumente enthält, ohne als Root ausgeführt zu werden! (Hoffentlich haben Sie Backups.)
Natürlich gibt es als Root zusätzliche Möglichkeiten, um dieselben Daten versehentlich zu zerstören. Sie könnten beispielsweise ein falsches of=
Argument für einen dd
Befehl angeben und Rohdaten über Ihre Dateien schreiben (was die Wiederherstellung erheblich erschwert, als wenn Sie sie lediglich gelöscht hätten).
Wenn Sie die einzige Person sind, die Ihren Computer verwendet, ist der Schaden, den Sie nur als Root anrichten können, möglicherweise nicht höher als der Schaden, den Sie mit Ihren normalen Benutzerrechten anrichten können. Dies ist jedoch immer noch kein Grund, Ihr Risiko um zusätzliche Möglichkeiten zu erweitern, wie Sie Ihr Ubuntu-System durcheinander bringen können.
Wenn die Ausführung mit einem Nicht-Root-Benutzerkonto Sie daran hinderte, die Kontrolle über Ihren eigenen Computer auszuüben, wäre dies natürlich ein schlechter Kompromiss. Dies ist jedoch nicht der Fall - wenn Sie tatsächlich eine Aktion als Root ausführen möchten , können Sie dies mit sudo
und anderen Methoden tun .
Warum nicht die Anmeldung als root ermöglichen?
Die Vorstellung, dass die Möglichkeit, sich als root anzumelden, von Natur aus unsicher ist, ist ein Mythos. Bei einigen Systemen ist standardmäßig ein Root-Konto aktiviert. Andere Systeme verwenden sudo
standardmäßig und einige sind mit beiden konfiguriert.
- Zum Beispiel wird OpenBSD , das allgemein als das sicherste Allzweck-Betriebssystem der Welt gilt, mit einem Root-Account ausgeliefert, der für lokales, passwortbasiertes Login aktiviert ist.
- Andere angesehene Betriebssysteme, die dies tun, sind RHEL , CentOS und Fedora .
- Debian (von dem Ubuntu abstammt ) lässt den Benutzer entscheiden, welcher Ansatz während der Systeminstallation konfiguriert wird.
Es ist nicht objektiv falsch, ein System zu haben, auf dem das Root-Konto aktiviert ist, vorausgesetzt, dass
- Sie benutzen es immer noch nur, wenn Sie es wirklich brauchen, und
- Sie schränken den Zugriff entsprechend ein.
Häufig fragen Anfänger, wie sie das Root-Konto in Ubuntu aktivieren sollen. Wir sollten diese Informationen von ihnen nicht verbergen, aber in der Regel , wenn die Leute das fragen es, weil sie unter dem falschen Eindruck, dass sie benötigen den Root - Account zu aktivieren. In der Tat ist dies so gut wie nie notwendig. Deshalb ist es bei der Beantwortung solcher Fragen wichtig, dass wir dies erklären. Das Aktivieren des Root-Kontos erleichtert es auch, selbstgefällig zu werden und Aktionen als Root auszuführen, für die keine Root-Berechtigungen erforderlich sind. Dies bedeutet jedoch nicht, dass die Aktivierung des Root-Kontos an sich unsicher ist.
sudo
ermutigt und hilft Benutzern, Befehle nur dann als root auszuführen, wenn sie dies benötigen. Um einen Befehl als root auszuführen sudo
, geben Sie ein Leerzeichen und dann den Befehl ein. Dies ist sehr praktisch, und viele Benutzer aller Schwierigkeitsgrade bevorzugen diesen Ansatz.
Kurz gesagt, Sie müssen keine Root-Anmeldungen aktivieren, weil Sie haben sudo
. Solange Sie es jedoch nur für administrative Aufgaben verwenden, für die es erforderlich ist, ist es ungefähr genauso sicher, sich als root zu aktivieren und anzumelden, sofern dies nur auf folgende Weise geschieht :
- Lokal von einer nicht grafischen virtuellen Konsole .
- Mit dem
su
Befehl, wenn Sie von einem anderen Konto angemeldet sind.
Es treten jedoch erhebliche zusätzliche Sicherheitsrisiken auf, wenn Sie sich wie folgt als root anmelden:
Grafisch. Wenn Sie sich grafisch anmelden, werden eine Menge Dinge ausgeführt, um die grafische Benutzeroberfläche bereitzustellen, und Sie werden am Ende noch mehr Anwendungen als Root ausführen, um diese Benutzeroberfläche für alles zu verwenden. Dies widerspricht dem Prinzip, dass nur Programme als root ausgeführt werden, die wirklich root-Rechte benötigen. Einige dieser Programme können Fehler enthalten, einschließlich Sicherheitslücken.
Darüber hinaus gibt es einen nicht sicherheitsrelevanten Grund, dies zu vermeiden. Die grafische Anmeldung als Root wird nicht gut unterstützt - wie Loevborg erwähnt , testen Entwickler von Desktop-Umgebungen und grafischen Apps diese nicht oft als Root. Selbst wenn dies der Fall ist, erhalten Benutzer bei der Anmeldung in einer grafischen Desktop-Umgebung als Root keine Alpha- und Betatests in der realen Welt, da dies fast niemand versucht (aus den oben erläuterten Sicherheitsgründen).
Wenn Sie eine bestimmte grafische Anwendung als Root ausführen müssen, können Siegksudo
oder verwenden sudo -H
. Dadurch werden weitaus weniger Programme als root ausgeführt, als wenn Sie sich tatsächlich grafisch mit dem root-Konto angemeldet hätten.
Entfernt. Das root
Konto kann praktisch alles und hat praktisch auf jedem Unix-ähnlichen System den gleichen Namen. Durch die Anmeldung als Root über ssh
oder andere Remotemechanismen oder die Konfiguration von Remotediensten, die dies zulassen , wird es Eindringlingen, einschließlich automatisierter Skripts und Malware, die in Botnetzen ausgeführt werden, erheblich erleichtert, über Brute Force, Wörterbuchangriffe (und möglicherweise auch über das Internet Zugriff zu erhalten einige Sicherheitslücken).
Wahrscheinlich ist das Risiko nicht extrem hoch, wenn Sie nur schlüsselbasierte und keine kennwortbasierten Root-Anmeldungen zulassen .
Standardmäßig sind in Ubuntu weder grafische Root-Anmeldungen noch Remoteanmeldungen über SSH aktiviert, selbst wenn Sie die Anmeldung als Root aktivieren . Das heißt, auch wenn Sie die Root-Anmeldung aktivieren, wird sie nur auf eine Art und Weise aktiviert, die einigermaßen sicher ist.
- Wenn Sie einen SSH-Server unter Ubuntu ausführen und keine Änderungen vorgenommen haben
/etc/sshd/ssh_config
, enthält dieser die Zeile PermitRootLogin without-password
. Dadurch wird die kennwortbasierte Stammanmeldung deaktiviert, die schlüsselbasierte Anmeldung jedoch zugelassen. Standardmäßig ist jedoch kein Schlüssel konfiguriert. Wenn Sie keinen eingerichtet haben, funktioniert dies auch nicht. Darüber hinaus ist die schlüsselbasierte Remote-Root-Anmeldung weitaus weniger schlecht als die kennwortbasierte Remote-Root-Anmeldung, zum Teil, weil sie nicht das Risiko von Brute-Force- und Wörterbuchangriffen birgt.
- Auch wenn die Standardeinstellungen Sie schützen sollten , ist es meiner Meinung nach immer noch eine gute Idee, Ihre ssh-Konfiguration zu überprüfen, wenn Sie das Root-Konto aktivieren möchten. Wenn Sie andere Dienste ausführen, die Remoteanmeldungen bereitstellen, z. B. FTP, sollten Sie diese ebenfalls überprüfen.
Abschließend:
- Arbeiten Sie nur dann als Root, wenn Sie dies benötigen.
sudo
hilft dir dabei und gibt dir trotzdem die volle Kraft von root, wann immer du es willst.
- Wenn Sie wissen, wie Root funktioniert und welche Gefahren eine Überbeanspruchung mit sich bringt, ist die Aktivierung des Root-Kontos aus Sicherheitsgründen nicht wirklich problematisch.
- Aber wenn Sie das verstehen, wissen Sie auch , dass Sie mit ziemlicher Sicherheit nicht brauchen den Root - Account zu aktivieren .
Für weitere Informationen über root und sudo
einige zusätzliche Vorteile sudo
, die ich hier nicht behandelt habe, empfehle ich RootSudo im Ubuntu-Hilfe-Wiki.