Warum erlaubt Ubuntu den GUI-Benutzern nicht, sich beim Systemstart als root anzumelden, wie ein Administrator in Windows?
Warum beschränken sie uns, uns nur über das Terminal anzumelden?
Warum erlaubt Ubuntu den GUI-Benutzern nicht, sich beim Systemstart als root anzumelden, wie ein Administrator in Windows?
Warum beschränken sie uns, uns nur über das Terminal anzumelden?
Antworten:
Es wird nicht empfohlen, dies zu tun, es sei denn, Sie wissen genau, was Sie tun. Root ist ein Superuser, was bedeutet, dass er alles und jeden ausführen kann - er ist nur für administrative Aufgaben gedacht. Tägliche Aufgaben können ein Sicherheitsrisiko bergen, das ausgenutzt wird, wenn JEDER (oder ein großer Teil der Benutzer) root verwendet. Denken Sie an Windows - 99% der Malware- und Virenprobleme stammen von Personen, die Administratorkonten für alltägliche Aufgaben verwenden.
Schauen wir uns ein Beispiel an.
Was ist, wenn jemand in Ihr System einbricht und es auffordert, Ihre Festplatten zu löschen? Wenn Sie als normaler Benutzer ausgeführt werden, sind die einzigen Dateien, die Sie entfernen können (sollten), diejenigen, die Ihnen gehören , und keine anderen. Wenn Sie beispielsweise andere Personen am Computer haben, werden deren Dateien nicht berührt, egal wie sehr Sie sich bemühen. Das bedeutet, dass Sie keine Systemdateien ändern können und Ihr System daher absolut stabil und nicht betroffen / nicht infiziert bleibt.
Wenn Sie jedoch als Root ausgeführt werden, können Sie die Festplatte vollständig löschen, möglicherweise die Hardware selbst beschädigen und das System im Allgemeinen unbrauchbar machen. Korrektur: Jeder, der einen einzelnen Befehl als root auf Ihrem Computer ausführen kann (eine bösartige Website oder ein E-Mail-Anhang), kann dies tun.
Werfen Sie einen Blick auf http://everyjoe.com/technology/explain-why-not-log-on-as-root/ , ist ein netter Artikel, der es vielleicht besser erklären könnte als ich.
BEARBEITEN: hier ist eine andere http://ihazomgsecurityskillz.blogspot.nl/2010/09/running-as-root.html
EDIT2: Sie können jederzeit sudo command
oder verwenden gksu command
, um das command
als Superuser auszuführen. Beide funktionieren mit Grafik- und Befehlszeilendienstprogrammen. sudo
wird normalerweise für CLI verwendet und gksu
ist die grafische Passwortabfrage, die dasselbe tut.
Bis zu einem gewissen Grad lassen sie Sie root
vorübergehend werden - viel, viel besser als ständig als root zu laufen und Instabilität zu riskieren.
In Ubuntu-Standard sind root
Anmeldungen weder über den GDM-Anmeldemanager (grafisch) noch über die Textkonsole (dh die, die Sie erhalten, wenn Sie Ctrl+ Alt+ drücken F1) zulässig .
Um root
(dh Administrator-) Vorgänge auszuführen , müssen Sie den sudo
Befehl in einem Terminal oder in einer entsprechenden GUI verwenden: Diese werden Sie nach Ihrem Kennwort fragen und dann den angeforderten privilegierten Vorgang ausführen (und nur diesen einen).
Der Grund für dieses Verhalten ist, wie andere darauf hingewiesen haben, dass das Ausführen von root
Vorgängen inhärent riskant ist und die Anzahl der Vorgänge, für die tatsächlich root
Berechtigungen erforderlich sind, vergleichsweise gering ist: Wenn Sie diesen sudo
Ansatz verwenden, werden Sie die meiste Zeit mit einem nicht privilegierten Konto ausgeführt (dh harmlos) an das System und andere Benutzer) und erhalten nur die root
Befugnisse, wenn es wirklich benötigt wird.
Ein Beispiel könnte zur Verdeutlichung beitragen. Angenommen, Sie möchten einen neuen Dienst (Daemon) auf Ihrem Computer installieren. Dies ist relativ neu und Sie müssen mehr darüber lesen und herausfinden, wie Sie es an Ihre Bedürfnisse anpassen können. Sie werden am Ende viel im Internet surfen, um Informationen, Beispielkonfigurationen usw. zu finden. Vielleicht haben Sie einen IRC-Chat, um weitere Informationen anzufordern - all dies erfordert keine root
Fähigkeiten! Letztendlich benötigen Sie nur privilegierten Zugriff für zwei Vorgänge:
sudo apt-get install ...
) undEin in der Computersicherheit allgemein anerkanntes Prinzip besteht darin, für die Ausführung einer Operation immer die geringstmögliche Berechtigungsstufe zu verwenden. - Dies verringert das Risiko, dass aufgrund von Fehlern in der Software oder Fehlern des Bedieners etwas Schlimmes passiert.
Das Ubuntu-Standard-Setup geht in diese Richtung; Wenn Sie stattdessen ein root
Login verwendet hätten, wären Sie im Internet gesurft und hätten IRC (und möglicherweise alle anderen Dinge, die man gleichzeitig tut) über das root
Konto ausgeführt, wodurch das System unnötigerweise einer Bedrohung ausgesetzt wäre.
Update: Für Ihr Compiler-Beispiel würde ich folgendermaßen vorgehen:
Melden Sie sich als normaler Benutzer über SSH am Knoten an und von einem anderen Ubuntu- oder GNU / Linux-Knoten aus, auf dem eine grafische X11-Anzeige ausgeführt wird. Stellen Sie sicher, dass die X11-Weiterleitung über SSH aktiviert ist:
ssh -X myuser@remotemachine.example.org
Geben Sie an der Shell / SSH-Eingabeaufforderung den folgenden Befehl ein:
sudo /path/to/the/compiler/install/program
Dadurch wird das Compiler-Installationsprogramm mit root
Berechtigungen ausgeführt und Sie können (über die SSH-Weiterleitung) auf die grafische Anzeige vor Ihnen zugreifen.
Die Gründe für die Verwendung von sudo in Ubuntu finden Sie hier . Wenn Sie jemals einen schnellen Weg brauchen, um "root" zu werden, verwende ich sudo -s
oder sudo -i
.
Abgesehen von den Bergen von Warnungen mit root, Sie können Root - Login , indem Sie sich und Durchführen der folgenden von Terminal aktivieren:
sudo passwd
Sie werden zuerst zur Eingabe Ihres Kennworts aufgefordert und dann aufgefordert, das UNIX-Kennwort zu ändern. Das eingegebene Passwort gilt für das root
Konto.
Das Ubuntu-Wiki bietet einen großartigen Artikel über die Tiefen von Root und Sudo in Ubuntu - Vorsichtsmaßnahmen und Fallstricke.
Hier gibt es zwei Fragen. Erstens, warum ist die Root-Anmeldung in Ubuntu standardmäßig deaktiviert? Dies wurde in mehreren Beiträgen angesprochen.
Die zweite Frage ist, warum grafische Root-Logins besonders herabgesetzt sind.
Alle Nachteile von nicht grafischen Root-Logins gelten auch für grafische Root-Logins. Wenn Sie sich jedoch grafisch anmelden, führen Sie weitaus mehr Programme aus, die weitaus komplexer funktionieren, als wenn Sie sich nicht grafisch anmelden. Die gesamte grafische Benutzeroberfläche und alle grafischen Programme, die zur effektiven Verwendung einer GUI erforderlich sind, würden als Root ausgeführt. Eine winzige Sicherheitslücke in einem von ihnen würde es jemandem ermöglichen, die vollständige Kontrolle über Ihr System zu übernehmen.
In Ubuntu ist es nicht empfehlenswert, sich als root anzumelden. In der Sicherheitsgemeinschaft besteht jedoch kein Konsens darüber, dass dies allgemein eine schlechte Praxis ist. Grafische Root-Anmeldungen sind jedoch eine schlechte Praxis, und fast alle Betriebssysteme haben sie auslaufen lassen oder empfehlen sie nachdrücklich ab.
In geringerem Maße birgt das Vorhandensein eines Nicht-Root-Benutzers (insbesondere eines Benutzers mit der Fähigkeit, Vorgänge als Root mit sudo oder PolicyKit auszuführen) bei einer grafischen Anmeldung Risiken. Sie sind jedoch weitaus kontrollierter als wenn alles in der grafischen Umgebung tatsächlich als Root mit unbegrenzten Möglichkeiten ausgeführt werden muss. In Situationen, in denen Sicherheit an erster Stelle steht, ist es normalerweise ratsam, auf grafische Oberflächen zu verzichten. Aus diesem Grund wird Ubuntu Server standardmäßig nicht mit einer grafischen Benutzeroberfläche ausgeliefert und es wird offiziell davon abgeraten, eine zu installieren (obwohl dies unterstützt wird). .
In der Windows-Welt können Sie Windows Server jetzt so installieren, dass die grafische Benutzeroberfläche im Wesentlichen nicht mehr benötigt wird (technisch gesehen bleiben einige Elemente erhalten, es ist jedoch sehr einfach und Sie können keine beliebigen grafischen Programme ausführen). Dies basiert auf der gleichen Überlegung.
Auch wenn Sie sich dafür entscheiden, Root-Anmeldungen zu aktivieren, melden Sie sich bitte nicht grafisch als Root an. Wenn Sie Root-Anmeldungen aktivieren, besteht möglicherweise ein geringfügig höheres Sicherheitsrisiko. Wenn Sie eine komplette grafische Umgebung als root ausführen, ist das Risiko enorm höher.
Mit Ausnahme der grafischen Verwaltungstools, die für die Ausführung als Root mit gksu / gksudo / kdesudo ausgelegt sind, sind die meisten grafischen Programme nicht für die Ausführung als Root vorgesehen. Da sie in diesem Modus nicht ausführlich getestet wurden, können sie ausfallen oder sich unregelmäßig verhalten (was besonders schlimm wäre, da sie als Root ausgeführt werden ).
Schließlich, auch einige grafischen Administrationstools, wieusers-admin
, werden scheitern , wenn als root ausführen, da sie von normalen Benutzern ausgeführt werden , erwarten und Aktionen als root ausführen (ohne jemals als root tatsächlich ausgeführt wird ) mit PolicyKit.
Öffnen Sie das Terminal ( Ctrl+ Alt+ Toder Dash home> Weitere Apps> Installiert (Erweitern)> Terminal).
UM DAS ROOT-KONTO ZU AKTIVIEREN
In einem Terminal Typ oder Paste sudo passwd root
. Geben Sie Ihr normales Login-Passwort ein (wenn Sie danach gefragt werden), dann werden Sie aufgefordert, das neue root
Passwort einzugeben und es zu bestätigen.
EIN NEUES LOGIN-PROMPT HINZUFÜGEN, DAS DIE EINGABE VON WURZELN UND SEINEM PASSWORT ERMÖGLICHT
In einem Terminal Typ oder Paste. gksudo gedit /etc/lightdm/lightdm.conf
. Dies öffnet ein grafisches Texteditorfenster, in dem Sie die Konfigurationsdatei für den Anmeldebildschirm bearbeiten können.
Fügen Sie die Zeile greeter-show-manual-login=true
am Ende der Datei hinzu.
Die Datei sollte nun wie folgt lauten:
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
greeter-show-manual-login=true
Speichern Sie die lightdm.conf
Datei und beenden Sie gedit.
Starten Sie Ubuntu 12.04 neu und Sie sehen ein neues "Login" -Fenster (ersetzt das vorherige "Andere" -Fenster), in dem Sie Benutzername und Passwort eingeben können. Geben Sie root
als Benutzernamen ein und geben Sie dann das Kennwort ein, das Sie dem Root-Konto zugewiesen haben.
Ich hoffe, das hilft anderen, die root
Zugang brauchen / wollen .
Wie bei Ubuntu 12.04 LTS können Sie dies mit root-Rechten tun:
echo "greeter-hide-users=true" >> /etc/lightdm/lightdm.conf
Anschließend werden Sie aufgefordert, sowohl den Benutzernamen als auch das Kennwort einzugeben, um sich grafisch anzumelden. Ich gehe davon aus, dass Sie bereits das Passwort für root festgelegt haben :)
Ich weiß, dass es unzählige Gründe gibt, warum Sie sich nicht direkt als root anmelden sollten. Es gibt jedoch einige seltene Fälle (zum Beispiel in einer Testbox, die in VMware ausgeführt wird), in denen Sie die Überzeugung, root zu sein, wirklich zu schätzen wussten.
Denn der Root-Benutzer und der Administrator (in Windows) sind das Äquivalent eines Gottes zu einem Computer. Dieser Benutzer kann alles von Dateiberechtigungen bis hin zum Löschen des gesamten Dateisystems anpassen. Es ist durchaus üblich, dass der durchschnittliche Heimanwender als Administrator ausgeführt wird (entweder unter diesem Namen oder einem anderen Namen, der beim ersten Start festgelegt wurde). Da jedes als dieser Benutzer ausgeführte Programm systemweit ist, wird es gefährlich.
Die fehlende Kontrolle über Administratorrechte kann zu Viren- / Malware- oder sogar selbstzerstörerischen Problemen führen. Aus diesem Grund haben viele Distributionen, einschließlich Ubuntu, den Übergang zur Hochleistung um einen zusätzlichen Schritt eingeschränkt (ein etwas kognitiver Schritt, der hilft, darauf zu bestehen, dass "alle Änderungen, die ich hier vornehme, umfangreichere Änderungen sind").
Obwohl Sie sich nicht direkt als root anmelden können (aus Gründen, die bereits von anderen erläutert wurden), können Sie GUI-Anwendungen als root ausführen. Beispielsweise ist System → Administration → Synaptic Package Manager eine grafische Anwendung, die als Root ausgeführt wird.
Verwenden Sie zum Ausführen einer Anwendung als Root (entweder eine Textanwendung oder eine GUI-Anwendung) einfach einen der folgenden Befehle:
sudo name-of-the-application
gksu name-of-the-application
Sie sind fast identisch. Der Hauptunterschied besteht darin, dass der erste Benutzer am Terminal nach dem Kennwort fragt und der zweite ein grafisches Dialogfenster verwendet.
sudo
und gksu
ist wichtiger als die Eingabe Ihres Passworts. gksu
wird für GUI-Apps und sudo
für die Befehlszeile bevorzugt , siehe hier und hier
Root wird für den normalen Gebrauch nicht empfohlen, aber manchmal gibt es eine lange Liste von Terminalbefehlen, die Root-Berechtigungen erfordern, und es ist einfacher, sich als Root anzumelden. Ich benutze sudo xterm
oder gksu xterm
, um ein Root-Terminal zu öffnen. Ich denke, es ist ein bisschen einfacher zu unterscheiden, welches Termfenster Root-Rechte hat, wenn Sie die praktische Eingabeaufforderung "root @" haben
Zusätzlicher Hinweis: Ubuntu erlaubt den GUI-Benutzern nicht, sich als root anzumelden, da Ubuntu verhindert, dass Sie versehentlich wichtige Dateien mit GUI-Apps (wie nautilus) entfernen oder löschen.
Mit nur der CLI-Benutzeroberfläche kann das Risiko eines Fehlers verringert werden. Bisher können wir uns jedoch nicht einmal im CLI-Modus mit root anmelden, da Ubuntu ein zufälliges Passwort für root erstellt. Root-Verwaltungsaufgaben können nur mit dem Kennwort des Benutzers mit dem Befehl sudo oder gksu ausgeführt werden.
Es basiert auf der Debian-Regel.
Angesichts der Tatsache, dass es keine guten Gründe gibt, sich als root anzumelden, würde ich den Unterschied zwischen RH (Root-Anmeldung zulassen) und Ubuntu (alles mit sudo / gksu) als vorzuziehen erachten.
Was den anderen Teil Ihrer Frage betrifft, sollten Sie in der Lage sein, Ihre grafische Installation auszuführen, indem Sie sich als normaler Benutzer anmelden, drücken ALT-F2
und eingeben gksu
. Geben Sie im daraufhin angezeigten Dialogfeld einfach den Befehl ein, mit dem Ihr Installationsprogramm gestartet wird.
Sie sollten sich immer als Sie selbst anmelden und dann sudo, um Aktionen als root auszuführen. Ubuntu ist so eingerichtet, dass Sie standardmäßig fast alle erforderlichen Zugriffsrechte haben. Kleinere Änderungen kümmern sich um den Rest (wie das Hinzufügen Ihrer verwendeten zu anderen Gruppen). Es wird als schlechte Praxis angesehen, sich als root anzumelden. Die branchenweit empfohlene Vorgehensweise ist die hier festgelegte Standardeinstellung.
Jemand, der sich als root anmelden kann, kann aus Sicherheitssicht eine sehr schlechte Sache sein.