Warum gibt es keine Möglichkeit, sich als root anzumelden?


39

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?


4
Beachten Sie auch 'gksu', mit dem Sie grafische Apps als Root ausführen können. Dh "gksu nautlius"
Jeremy

1
In einigen Distributionen können Sie sich bei X als root anmelden. CentOS6.2 ist einer von ihnen.
Djangofan

Antworten:


42

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 commandoder verwenden gksu command, um das commandals Superuser auszuführen. Beide funktionieren mit Grafik- und Befehlszeilendienstprogrammen. sudowird normalerweise für CLI verwendet und gksuist die grafische Passwortabfrage, die dasselbe tut.

Bis zu einem gewissen Grad lassen sie Sie rootvorübergehend werden - viel, viel besser als ständig als root zu laufen und Instabilität zu riskieren.


1
Aber warum erlaubt Fedora diese Option beim Start?
Renjith G

5
Ubuntu ist benutzerfreundlich gestaltet, und ich würde vermuten, dass durch das Deaktivieren von root die Versuchung normaler Benutzer (lesen Sie: Linux-Neulinge), die als root ausgeführt werden, beseitigt wird.
Evgeny

Ich habe dich nicht verstanden.
Renjith G

2
Mein Kommentar war etwas falsch. Nehmen wir stattdessen Folgendes an: Indem Sie die grafische Root-Anmeldung deaktivieren, verhindern Sie, dass Benutzer als Root ausgeführt werden, sofern sie nicht wissen, was sie tun. Dies sollte meiner Meinung nach nur erfahrenen Benutzern gestattet sein, die alle Risiken kennen und verstehen.
Evgeny

1
Es soll leicht aggressiv sein, nur um die Leser wieder in die Realität zu versetzen und wirklich einen Punkt zu machen.
Evgeny

11

In Ubuntu-Standard sind rootAnmeldungen 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 sudoBefehl 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 rootVorgängen inhärent riskant ist und die Anzahl der Vorgänge, für die tatsächlich rootBerechtigungen erforderlich sind, vergleichsweise gering ist: Wenn Sie diesen sudoAnsatz 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 rootBefugnisse, 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 rootFähigkeiten! Letztendlich benötigen Sie nur privilegierten Zugriff für zwei Vorgänge:

  1. Installieren Sie das neue Programm (dh sudo apt-get install ...) und
  2. Bearbeiten Sie die Standardkonfiguration

Ein 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 rootLogin 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 rootKonto ausgeführt, wodurch das System unnötigerweise einer Bedrohung ausgesetzt wäre.

Update: Für Ihr Compiler-Beispiel würde ich folgendermaßen vorgehen:

  1. 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
    
  2. Geben Sie an der Shell / SSH-Eingabeaufforderung den folgenden Befehl ein:

    sudo /path/to/the/compiler/install/program
    

    Dadurch wird das Compiler-Installationsprogramm mit rootBerechtigungen ausgeführt und Sie können (über die SSH-Weiterleitung) auf die grafische Anzeige vor Ihnen zugreifen.


Okay. Angenommen, ich verwende eine Linux-Maschine (mit 10 Benutzern, die über Putty verbunden sind). Ich möchte eine Software (z. B. einen Compiler, für den auch Umgebungsvariablen festgelegt werden müssen) als root installieren, damit sie für alle Benutzer verfügbar ist. Das Installationsprogramm funktioniert jedoch nur im GUI-Modus und ohne Befehlszeilen-Installationsprogramm und wird nur mit Root-Anmeldung ausgeführt. Wie kann ich die Installation verwalten? Ich bin dieser Situation begegnet, als ich arm-linux-gcc in meinem Ubuntu installiert habe, aber ich habe es erfolgreich auf meinem Fedora-Rechner (RedHat-Shrike-Version) installiert
Renjith G

@ Renjit G: Nun, das ist eine gute Frage für sich, warum fragst du es nicht einfach?
Riccardo Murri

1
@ Renjit G: Ich wollte vorschlagen, dass Sie eine neue Frage stellen. Das Stellen vieler spezifischer Fragen ist besser als das Stellen einer facettenreichen, da so detaillierte und präzise Antworten möglich sind. Wenn Sie die aktuelle Frage bearbeiten, sehen die Antworten, die Sie bereits erhalten haben, so aus, als würden sie nur die Hälfte Ihrer Frage beantworten ...
Riccardo Murri

Vielen Dank Murri. Ich werde auf jeden Fall erst ab meinen nächsten Posts so weitermachen.
Renjith G

1
Bei einem solchen Compiler wären die meisten von uns gespannt, um welchen Compiler es sich handelt. Für jede Software, die über APT-Quellen oder eigenständige .deb-Dateien vertrieben wird, ist die Installation über die Befehlszeile mit "sudo" ausreichend (ja, auch für alle Benutzer). Es ist auch möglich, solche Dateien von der GUI für alle Benutzer zu installieren, ohne root zu sein. Die Aufforderung zur Eingabe des GUI-Passworts entspricht "sudo".
schadet

8

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 -soder sudo -i.


9
Und um das zu verdeutlichen, glaube ich, dass sudo -s eine Root-Sitzung als Benutzer erstellt, während sudo -i eine Root-Sitzung als Root-Benutzer erstellt. Die einfache Möglichkeit, den Unterschied festzustellen, besteht darin, den Befehl abzusetzen und anschließend ein "echo $ HOME" auszuführen, um festzustellen, welche Umgebung verwendet wird. Oder "cd ~" dann "pwd" würde auch funktionieren.
Scaine

6

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 rootKonto.

Das Ubuntu-Wiki bietet einen großartigen Artikel über die Tiefen von Root und Sudo in Ubuntu - Vorsichtsmaßnahmen und Fallstricke.


5

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.


4

Ö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 rootPasswort 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=trueam 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.confDatei 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 rootals Benutzernamen ein und geben Sie dann das Kennwort ein, das Sie dem Root-Konto zugewiesen haben.

Ich hoffe, das hilft anderen, die rootZugang brauchen / wollen .


2

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.


1

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").


heh heh. ... "Alle Änderungen, die ich hier vornehme, sind umfangreicher".
EMF

1

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.


1
Der Unterschied zwischen sudound gksuist wichtiger als die Eingabe Ihres Passworts. gksuwird für GUI-Apps und sudofür die Befehlszeile bevorzugt , siehe hier und hier
Warren Hill

1

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 xtermoder 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


0

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.


was bedeutet gksu befehl
Renjith G

1
man gksu: gksu - GTK + Frontend für su und sudo
squallbayu 13.10.10

1
Sorry.Again, nicht klar genug für mich
Renjith G

Ich meine 'gksu' bedeutet GTK + Frontend für su und sudo.
Squallbayu

1
ja, du hast Recht. Probieren Sie 'gksu nautilus' im Terminal. Nautilus mit Root-Rechten wird angezeigt.
Squallbayu

0

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-F2und eingeben gksu. Geben Sie im daraufhin angezeigten Dialogfeld einfach den Befehl ein, mit dem Ihr Installationsprogramm gestartet wird.


0

Root wird nicht für tägliche Aufgaben empfohlen. Da es u Superuser-Präfixe bietet, kann es missbraucht werden. Daher gibt es keine Option für root bei der Anmeldung.


0

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.