Warum ist es schlecht, sich als root anzumelden?

192

Ich bin oft auf Foren oder andere Websites gestoßen, auf denen man Leute sieht, die sich über das Laufen / Einloggen als Root lustig machen, als ob es etwas Schreckliches wäre und jeder davon wissen sollte. Es gibt jedoch nicht viel, was eine Suche in dieser Angelegenheit verrät.

Es mag Linux-Experten weithin bekannt sein, aber ich weiß wirklich nicht warum. Ich erinnere mich, dass ich immer als root ausgeführt habe, als ich Linux vor Jahren zum ersten Mal ausprobiert habe (Redhat und Mandrake), und erinnere mich nicht, dass ich deswegen auf irgendwelche Probleme gestoßen bin.

Es gibt tatsächlich einige Distributionen, die einen leuchtend roten Hintergrund mit Warnzeichen als Hintergrundbild für den Root-Benutzer (SuSe?) Haben. Ich verwende das Konto "Administrator" weiterhin für die reguläre Verwendung in meiner Windows-Installation und habe dort auch noch keine Probleme festgestellt.

Mussnoon
quelle
15
Ich denke, es ist kein Problem, ein Programm als root auszuführen. Es ist nur so, dass Sie möglicherweise den Kern Ihres Betriebssystems beschädigen (auch Sudoer können das), wenn Sie in Linux nicht sehr weise sind. Ansonsten gibt es kein Problem. Aber das ist nur meine Sichtweise.
Gaurav Butola
1
Verwandte Frage hier .
Loevborg
Die Schwierigkeit, in den Root-Modus zu gelangen, variiert zwischen den Distributionen. Ich persönlich ärgere mich darüber, dass Fedora es Ihnen nicht erlaubt, sofort loszulegen. OpenSUSE und Ubunto haben jedoch sudo vorkonfiguriert. Wenn Sie also die richtige Distribution auswählen, können Sie Ihre Unannehmlichkeiten minimieren, weil Sie keinen Zugriff auf Dateien erhalten.
Djangofan
4
@GauravButola Auch wenn Sie ein Experte sind, ist es eine schlechte Idee, wenn eine Anwendung kompromittiert wird.
Strugee
2
@DaboRoss das OP kommentiert, dass er in Windows als Administrator arbeitet; Aufgrund meiner (geringen) Erfahrung in diesem Betriebssystem scheint es mir eher wie Ubuntu zu sein: Es ist ein privilegierter Account in dem Sinne, dass er alles kann, was Sie wollen, aber er bittet um Erlaubnis, bevor er zum Beispiel neue Software installiert. Das Äquivalent zur Verwendung des Benutzers "Administrator" in Windows, das in Ubuntu übersetzt wurde, ist wahrscheinlich, den Hauptbenutzer mit sudo auszuführen, das so konfiguriert ist, dass er nicht nach dem Pass fragt - direkt als root auszuführen ist viel gefährlicher.
Rmano

Antworten:

154

Es besiegt das seit Jahren bestehende Sicherheitsmodell. Anwendungen sollen mit nicht-administrativer Sicherheit (oder als reine Sterbliche) ausgeführt werden. Sie müssen daher ihre Berechtigungen erhöhen, um das zugrunde liegende System zu ändern. Zum Beispiel möchten Sie nicht, dass der kürzliche Absturz von Rhythmbox Ihr gesamtes /usrVerzeichnis aufgrund eines Fehlers löscht . Oder diese Sicherheitsanfälligkeit, die soeben in ProFTPD veröffentlicht wurde, damit ein Angreifer eine ROOT-Shell erhalten kann.

Auf jedem Betriebssystem ist es nur eine gute Praxis, Ihre Anwendungen auf Benutzerebene auszuführen und administrative Aufgaben dem Root-Benutzer zu überlassen, und zwar nur nach Bedarf.

lazyPower
quelle
5
... und es schützt Sie davor, bei Katastrophen triviale Fehler umzuwandeln. Ich bin ein Unix-Benutzer / adm seit 1990, aber dennoch kann ich sicher ein Leerzeichen genau an der falschen Stelle platzieren, indem ich rm -rf tmp/tests/*...
Rmano
9
1.) Die meisten Benutzer halten ihr Home-Verzeichnis für wichtiger als Root-Verzeichnisse, da erstere nicht erneut installiert werden können. Also verstehe ich deinen Standpunkt nicht. 2.) In Sachen Sicherheit haben Sie recht. Aber wenn ich von Windows komme (wo es WEGE mehr Malware gibt), wo ich seit jeher das Administratorkonto benutzt habe (wie so viele), fällt es mir schwer, dies als echte Gefahr zu betrachten. Ich bin einfach zu faul zu tippen sudound mein Passwort für jeden zweiten Befehl in Linux. Sollen Linux-Benutzer nicht faul sein ?????
Phil294
nicht einverstanden -_-: ~: |
Edgy1
@ LazyPower Danke für die Bearbeitung Ihrer Antwort, aber jetzt verstehe ich es nicht mehr. Zum Ändern meines privaten Ubuntu ~ -Ordners benötigen Programme keine Sudo-Rechte. Rhythmbox KANN mein gesamtes $ HOME / Music-Verzeichnis löschen! Und das ist alles, was mir wichtig ist! Inwiefern hängt dies mit den Root-Berechtigungen zusammen?
phil294
1
Das ist ein guter Anruf bei Blauhirn. Ich habe gerade eine Nachbearbeitung gesendet, um zu reflektieren, dass nicht die gesamte Datei / usr gelöscht werden soll. Was den Schutz Ihrer $ HOME-Ordner anbelangt, kann Ihnen nichts weiter helfen als ein gutes Backup. Ich denke nicht, dass dieses spezielle Szenario mit Sicherheit zu tun hat, sondern vielmehr mit bewährten Praktiken. Nochmals vielen Dank für den Hinweis.
LazyPower
79

Nur ein Wort: Sicherheit.

  1. Sie sind als root angemeldet = alle Anwendungen werden mit root-Rechten ausgeführt - jede Sicherheitslücke in Firefox, Flash, OpenOffice usw. kann jetzt Ihr System zerstören, da mögliche Viren nun überall Zugriff haben. Ja, es gibt nur wenige Viren für Ubuntu / Linux, aber es liegt auch an der guten Sicherheit und den nicht privilegierten Standardbenutzern.
  2. Es geht nicht nur um Viren - ein kleiner Fehler in einer Anwendung könnte einige Systemdateien löschen oder ...
  3. Wenn Sie als root angemeldet sind, können Sie alles tun - das System fragt nicht! Möchten Sie diese Festplatte formatieren? Ok, nur ein Klick und fertig, denn du bist root und weißt was du tust ...
Vojtech Trefny
quelle
16
Datendateien, die sich alle im Besitz meines Benutzerkontos befinden, sind für mich viel wertvoller als Systemdateien. Alle oben genannten Beispiele sind weiterhin problematisch, wenn Sie als Benutzer angemeldet sind, mit der Ausnahme, dass die leicht ersetzbaren Systemdateien geschützt sind.
kbeta
5
@kbeta Sie gehen davon aus, dass Sie auf einem Computer ausgeführt werden, auf dem Ihre Daten und Systemdateien die einzigen Wertsachen sind. In der Realität wird Linux oft in einem System verwendet, in dem viele Benutzer gleichzeitig ein System verwenden. In diesem Fall ist die Stabilität des Systems (und damit der Systemdateien) weitaus wertvoller und andere Benutzerdateien sind ebenfalls wichtig.
Eric Pauley
2
@kbeta Gut genug, aber eine beschädigte Systemkonfiguration kann auch ein Risiko für Ihre Daten darstellen ... und natürlich wäre es eine gute Idee, Backups zu erstellen, ob Ihr System derzeit einem Risiko ausgesetzt ist oder nicht. Ein aktuelles Backup mit einem Disaster Recovery-Plan wäre noch besser.
Pryftan,
47

Als root zu laufen ist schlecht, weil:

  1. Dummheit: Nichts hindert dich daran, etwas Dummes zu tun. Wenn Sie versuchen, das System auf irgendeine Weise zu ändern, die schädlich sein könnte, müssen Sie sudo ausführen, wodurch eine Pause während der Eingabe des Kennworts so gut wie garantiert wird, damit Sie erkennen, dass Sie im Begriff sind, eine mögliche große / kostspielige Änderung vorzunehmen.
  2. Sicherheit: Es wurde bereits einige Male in dieser Frage erwähnt, aber im Grunde ist es dasselbe, was schwerer zu hacken ist, wenn Sie das Anmeldekonto des Admin-Benutzers nicht kennen. root bedeutet, dass Sie bereits die Hälfte der gültigen Administratoranmeldeinformationen haben.
  3. Sie brauchen es nicht wirklich: Wenn Sie mehrere Befehle als root ausführen müssen und sich darüber ärgern, dass Sie Ihr Passwort nach Ablauf von sudo mehrmals eingeben müssen, müssen sudo -iSie nur noch root sein. Möchten Sie einige Befehle mit Pipes ausführen? Dann benutze sudo sh -c "comand1 | command2".
  4. Sie können es jederzeit in der Wiederherstellungskonsole verwenden: In der Wiederherstellungskonsole können Sie versuchen, sich von Dummheiten zu erholen oder Probleme zu beheben, die durch eine App verursacht wurden (die Sie noch als sudo ausführen mussten :)). Ubuntu hat kein Kennwort Wenn Sie in diesem Fall das Root-Konto suchen, aber online nach Änderungen suchen können, wird es für jeden, der physischen Zugriff auf Ihre Box hat, schwieriger, Schaden zu verursachen.

Der Grund, warum Sie keine Informationen darüber finden konnten, warum es schlecht ist, ist, dass im Internet viel zu viele Daten vorhanden sind :) und dass viele Leute, die Linux seit langer Zeit verwenden, so denken wie Sie. Diese Art, über das Root-Konto nachzudenken, ist ziemlich neu (vielleicht ein Jahrzehnt?) Und viele Leute ärgern sich immer noch darüber, dass sie sudo verwenden müssen. Vor allem, wenn sie auf einem Server arbeiten, was bedeutet, dass sie Systemänderungen vornehmen wollten. Wahrscheinlich aufgrund früherer schlechter Erfahrungen und Sicherheitsstandards, die die meisten Sysadmins besser kennen, aber sie mögen es immer noch nicht :).

Marlon
quelle
"Ein Jahrzehnt vielleicht?" Viel viel länger als das, seit du das geschrieben hast. Auch ohne Sudo gibt es nicht zu erwähnen zB die Radgruppe (zum Beispiel). Privilegientrennung ist immer wichtig und war immer wichtig und wird immer wichtig sein. Es gab nicht so viele Leute, die Unix-basierte Betriebssysteme verwendet haben wie vor vielen Jahren und viele, die es gewohnt sind, immer ein Administrator zu sein.
Pryftan,
36

Das ist eine gute Frage. Ich denke, die Antwort ist etwas anders, je nachdem, ob Sie über einen Server oder eine Desktop-Installation sprechen.

Auf einem Desktop wird das rootKonto nur selten verwendet . Tatsächlich wird Ubuntu mit deaktiviertem Root-Zugriff ausgeliefert. Alle Änderungen, die Superuser-Berechtigungen erfordern, werden über sudound die grafischen Verknüpfungen gksudound vorgenommen kdesudo. Angesichts der Tatsache, dass es einfach ist, ein rootPasswort festzulegen, warum tun es die Leute dann nicht?

Ein Grund dafür ist, dass Sie eine zusätzliche Sicherheitsebene erhalten. Wenn Sie ein Programm ausführen rootund eine Sicherheitslücke ausgenutzt wird, hat der Angreifer Zugriff auf alle Daten und kann die Hardware direkt steuern. Beispielsweise kann ein Trojaner oder ein Key-Logger in Ihrem Kernel installiert werden. In der Praxis kann ein Angriff jedoch auch ohne Superuser-Berechtigungen großen Schaden anrichten. Schließlich sind alle Benutzerdaten - einschließlich der Dokumente und gespeicherten Passwörter - ohne Root-Zugriff zugänglich.

Ein wichtiger Punkt auf einem Einzelbenutzersystem ist, dass der Benutzer daran gehindert wird, das System versehentlich unbrauchbar zu machen. Wenn der Benutzer versehentlich einen Befehl ausgibt, mit dem alle Dateien gelöscht werden, kann er das System auch dann booten, wenn die Daten verloren gehen.

Darüber hinaus basieren die meisten X11-Anwendungen (User-Facing) heutzutage auf der Annahme, dass sie als reguläres Benutzerkonto und ohne Administratorrechte ausgeführt werden. Daher können sich einige Programme beim Ausführen als falsch verhalten root.

Auf einem Mehrbenutzersystem mit ausschließlich nicht grafischem Shell-Zugriff treffen viele dieser Gründe nicht zu. Ubuntu greift jedoch nach wie vor auf ein rootKonto zu, auf das nicht zugegriffen werden kann. Zum einen gibt es einen echten Unterschied zwischen dem Zugriff auf ein Benutzerkonto (mit sudoRechten) über eine Sicherheitslücke und dem Zugriff darauf root, da im ersten Fall die Störung anderer Benutzer ausgeführt werden muss sudound weiterhin zur Eingabe des Kontokennworts als erforderlich ist zusätzlicher Sicherheitsschritt. Zum anderen ist es nützlich, viele administrative Aufgaben von einem Benutzerkonto aus auszuführen und nur dann aufzurufen, sudowenn die Superuser-Berechtigungen unbedingt erforderlich sind. Wenn Sie ein Programm von der Quelle installieren, ist es daher ratsam, die Quelle zu erstellen - ausgeführt configureundmake- Im Benutzerverzeichnis und nur sudo make installim letzten Schritt verwenden. Dies macht es wiederum schwieriger, sich selbst (und andere Benutzer des Mehrbenutzersystems) in den Fuß zu schießen, und es verringert die Wahrscheinlichkeit, dass Build-Skripte das System in Mitleidenschaft ziehen. Daher ist es auch auf einem Server ratsam, sich an die sudo-basierte Administration von Ubuntu zu halten .

Loevborg
quelle
2
he will still be able to boot the system, even if the data will be lost.- Was ist der Sinn davon? Wenn meine Daten verloren gehen, gehen meine Daten verloren und das wars. Linux-Systemsoftware kann neu installiert werden, wenn sie gelöscht wird. Warum sollte ich mich in solchen Verzeichnissen um Datenverluste kümmern? Auf der anderen Seite ist der Datenverlust ~schlecht. Und sudoschützt mich nicht davor.
Phil294
2
Eine weitere bewährte Methode besteht darin, wichtige Daten zu sichern. Wenn Sie das Home-Verzeichnis löschen, können Sie immer noch booten und einfach Dateien aus dem Backup kopieren. Oder nehmen wir an, Sie haben einen kleinen Laptop für die Reise. Es könnte einige Bilder, Reisehinweise, Zugfahrpläne enthalten - aber nichts zu Entscheidendes. Wenn Sie die Benutzerdateien löschen, können Sie das System trotzdem hochfahren und für Ihren Flug einchecken oder herausfinden, welchen Bus Sie nehmen müssen.
Richlv
@ Blauhirn Backups. Und es gibt eine Chance auf Erholung, auch wenn es trostlos aussieht.
Pryftan,
34

Ein Grund, nicht als root zu laufen, der (bisher) nicht durch andere Antworten identifiziert wurde, ist die Rückverfolgbarkeit. Auf Computern, bei denen es sich in erster Linie um Einzelbenutzer-Computer handelt (Desktop oder Laptop), ist es wahrscheinlich weniger wichtig. Auf Servern, auf denen jemand angemeldet ist root, wissen Sie jedoch nicht, wer für die durchgeführten Aktionen verantwortlich ist. Daher rooterfordern die meisten professionellen Organisationen mit mehreren Systemen und mehreren Administratoren, die Berechtigungen benötigen, dass sich Benutzer mit ihrer eigenen Benutzer-ID (und ihrem Kennwort) anmelden und dann mit sudooder ähnlichen Programmen arbeiten, rootwenn dies erforderlich ist.

Andernfalls sind die Hauptgründe dafür, dass Sie nicht als Root ausgeführt werden:

  • Minimieren Sie das Unfallrisiko. Wenn Sie rm -fr / home/me/my-subdirals root ausgeführt werden, haben Sie einfach alles Wichtige auf Ihrem Computer entfernt, weil nach dem (ersten) Schrägstrich so viel Platz frei ist. das /binund das /etcVerzeichnis. Unix ärgert sich, wenn Sie diese verlieren.

  • Minimieren Sie das Risiko von Beschädigungen durch böswillige Websites außerhalb. Wenn Sie nach durchsuchen root, sind Sie anfälliger für vorbeifahrende Downloads von schädlichem Material.

Ich verwende MacOS X häufiger als Ubuntu, aber dort ist root standardmäßig deaktiviert und befindet sich immer noch auf meinem Computer. Ich aktualisiere routinemäßig den Kernel und andere ähnliche Operationen - mit sudo(hinter den Kulissen). Ähnliche Techniken gelten im Allgemeinen für Linux.

Grundsätzlich sollten Sie die allmächtigen Berechtigungen von nur rootfür verkürzte Arbeitszeiten nutzen, um das Risiko von Fehlern zu vermeiden.

Jonathan Leffler
quelle
1
Es geht nicht darum, jemandem die Schuld zu geben, es geht darum, herauszufinden, warum jemand eine Änderung vorgenommen hat.
jippie
2
@jippie: Ich meine "Schuld" auf die gleiche Weise, wie ein VCS verfolgt, wer was getan hat, so dass die richtige Person mit der Verantwortung für die Änderung, für gut oder schlecht, und einem der Namen für den Befehl, der diese Verfolgung durchführt, beauftragt wird ist 'Schuld'. Es gibt Ihnen eine Person, mit der Sie sprechen können, um herauszufinden, warum etwas passiert ist. Es ist nicht immer ein "Fehler" (obwohl der Grund dafür, dass man es wissen muss, deprimierend oft ist, dass etwas nicht wie erwartet funktioniert und man wissen muss, warum nicht). Es geht also eher um Verantwortlichkeit und Nachverfolgbarkeit als darum, der Person die Schuld für das zu geben, was sie getan hat.
Jonathan Leffler
Unter Ubuntu rm -fr / home/me/my-subdirversuchen Befehle wie nicht, rekursiv zu löschen /, da /sie speziell behandelt werden, um sich vor solchen Fehlern zu schützen. Weitere Informationen finden Sie in der Dokumentation der Optionen --preserve-rootund --no-preserve-rootin man rm. Das Prinzip ist jedoch solide: Es gibt einzelne Tippfehler, die dazu führen , dass rmalles gelöscht wird. Zum Beispiel bedeuten , wenn Sie alles , was im aktuellen Verzeichnis zu entfernen , indem Sie rm -r *, aber Sie einen versehentlich setzen /vor *, die schlecht sein würde.
Eliah Kagan
@EliahKagan Aber wenn du es doch tun würdest ... chown -R nobody:nobody ../von say / etc würde es dich beschützen? Wenn Sie das auf / etc machen würden, würde es Ihnen eine Welt voller Verletzungen bereiten. Ähnlich ist es, .*wenn ein Befehl rekursiv ausgeführt wird.
Pryftan,
21

TL; DR: Tun Sie Dinge als root nur, wenn Sie müssen. sudomacht 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 sudound 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:

  1. 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.
  2. 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 ddBefehl 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 sudound 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 sudostandardmäß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

  1. Sie benutzen es immer noch nur, wenn Sie es wirklich brauchen, und
  2. 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.

sudoermutigt 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 suBefehl, 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 rootKonto kann praktisch alles und hat praktisch auf jedem Unix-ähnlichen System den gleichen Namen. Durch die Anmeldung als Root über sshoder 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. sudohilft 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 sudoeinige zusätzliche Vorteile sudo, die ich hier nicht behandelt habe, empfehle ich RootSudo im Ubuntu-Hilfe-Wiki.

Eliah Kagan
quelle
'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. Aber das ist immer noch kein Grund, Ihr Risiko zu erhöhen. Ganz zu schweigen davon, dass Sie es gewohnt sind. Dann wechseln Sie zu einem anderen System und was passiert? Das Gleiche gilt für die absurde Idee, Menschen rm -idurch Shell-Alias ​​zu gewöhnen . Sie gehen zu einem System, das das nicht hat und was dann? Babysitting eines Benutzers aus solchen Fehlern ist keine gute Idee, wenn man bedenkt, dass Menschen sehr gewohnheitsmäßige Wesen sind.
Pryftan
13

Das Root-Konto ist standardmäßig deaktiviert. Dies bedeutet, dass es existiert, aber nicht verwendet werden kann (außer im Wiederherstellungsmodus). Dies bedeutet, dass ein Angreifer Ihr Root-Konto kennt, es jedoch nicht verwenden kann, selbst wenn er / sie das Root-Passwort hat. Daher muss ein Angreifer sowohl einen Benutzernamen mit Administratorrechten als auch das Kennwort dieses Benutzers erraten (was weitaus schwieriger ist, als nur das Root-Kennwort zu ermitteln). Unter XP, wenn Sie die Wiederherstellungskonsole installiert haben, jeden, der hat physischen Zugriff auf Ihre Box kann darin booten (RC) - kein Passwort erforderlich. Entspricht dem Wiederherstellungsmodus in Ubuntu.

In Ubuntu ist das Konto gesperrt, wenn sie sagen, dass der Root deaktiviert ist. Ein Konto wird gesperrt, indem das Kennwort in einen Wert geändert wird, der keinem möglichen verschlüsselten Wert entspricht. Auf diese Weise wird effektiv verhindert, dass sich jemand als root anmelden kann, da die Eingabe des Passworts unmöglich ist. Da es immer noch Zeiten gibt, in denen Root-Zugriff erforderlich ist, wurde der Ubuntu-Kernel so geändert, dass die lokale Root-Anmeldung nur im Einzelbenutzermodus möglich ist.

Siehe auch diese Seite

karthick87
quelle
Äh. Nichts für ungut, aber vielleicht möchten Sie den Titel der Frage lesen und dann die Details noch einmal lesen.
Mussnoon
3
Dies ist äußerst hilfreich - und es bezieht sich auf die Frage. Es befasst sich mit den Sicherheitsaspekten der Aktivierung des Kontos, eine Voraussetzung für die Ausführung als Root.
Stefano Palazzo
1
@Stefano Palazzo: Obwohl die bereitgestellten Informationen nützlich sein können, kann ich aufrichtig nicht erkennen, in welchem ​​Teil eine Antwort auf das liegt, was ich wissen musste. Ich habe es mehrmals gelesen.
Mussnoon
Verhindert nicht, dass sich Benutzer bei root anmelden können.
Tschad
12

Es ist, als würde man ein kleines Kind mit einem AK47 bewaffnen, während er gerne mit seiner Paintball-Pistole spielen kann. ;)

Ich meine, es ist falsch, weil Sie und Ihre Anwendungen mehr Privilegien haben, als sie brauchen, und dann können und werden Dinge schief gehen :(

omeid
quelle
5
eine klügere Analogie. (^
_
2
Dies ist eine völlig unangemessene Analogie. Ein Kind mit einem AK47 kann sich selbst und andere Menschen töten. Ein Unix-Benutzer mit Root-Zugriff kann sein System höchstens vorübergehend außer Betrieb setzen. (Man kann immer das Betriebssystem neu installieren und die Operation wiederherstellen).
kbeta
@ kbeta Du hast recht, meine Analogie ist ein bisschen überproportional und übertrieben. Bitte mach weiter.
omeid
@ kbeta die Analogie ist angebracht. Das Risiko ist nicht ein nicht funktionsfähiges System, sondern der Verlust von Daten und Privatsphäre. Der Root-Benutzer kann die Daten löschen. Verwenden Sie bitte Ihre Phantasie, um das Töten und den Datenverlust in Verbindung zu bringen.
n611x007
11

Sehr schöne Frage ... Lassen Sie es mich aus praktischer Sicht beantworten:

Als ich vor mehr als 10 Jahren mit Linux anfing, machten die großen Distributionen nicht mehr so ​​viel Werbung mit Nicht-Root-Accounts wie heute. Da ich an Windows gewöhnt war, sah ich auch keinen Grund, ein eingeschränktes Benutzerkonto zu verwenden. Vor allem, weil ich sehr oft "su" eingeben musste - sudo war damals nicht so beliebt. ;-) Also habe ich mich immer als root angemeldet, weil ich viel zu warten hatte, um mein System richtig zu konfigurieren. Aber raten Sie mal, jedes neu installierte System wurde schnell sehr instabil.

Ein konkretes Problem zum Beispiel: Ich hatte nicht so viel Festplattenspeicher für Linux reserviert, so dass es mir ein paarmal passiert ist, dass auf meiner Partition noch 0 Bytes vorhanden waren. Vielleicht bin ich nicht ganz präzise, ​​weil ich den genauen Mechanismus nicht kenne, aber wenn Sie eine Festplatte mit einem Nicht-Root-Konto füllen, bleiben immer ein paar Kilobyte übrig. Aber wenn Sie wirklich noch 0 Bytes haben, macht Ihr System seltsame Fehler und es kann sein, dass Sie einige schwer zu behebende Schäden in Ihrem System haben, weil im Hintergrund viel Systemsoftware läuft ...

Eine andere Sache ist: Diese Trennung zwischen root und non-root hält Ihr System gut organisiert. Als Root-Benutzer könnten Sie versucht sein, Ihre neuen Anwendungen nicht sauber zu installieren, wodurch Sie ein schmutziges, schwer zu wartendes System haben.

Aber das Gute: Moderne Distributionen erledigen die meisten Administrationsaufgaben für Sie, so dass Sie selten mit einem Root-Account in den Eingeweiden Ihres Linux-Systems herumspielen müssen. Es reicht aus, von Zeit zu Zeit ein Passwort einzugeben, den Rest erledigen die Skripte des Distributors.

Aber ich bezweifle, dass Sie damit auf Ihrem Windows-System keine Probleme hatten, wenn Sie 95 oder 98 verwendet haben "Windows - Apps gehen davon aus, dass sie alles können, z. B. Spyware installieren, auch ohne es Ihnen mitzuteilen. Microsoft hat sich mit diesem Problem befasst, als Vista veröffentlicht wurde. (Effektives Implementieren eines Sudo-Mechanismus.) Die Leute bekamen also sehr ärgerliche Dialoge, in denen sie sagten: "Das kannst du nicht machen". Für einige nicht Vista-konforme Software brauchten Sie einige schmutzige Hacks, um sie zu installieren, selbst als Administrator ...

Philip
quelle
"Vielleicht bin ich nicht ganz präzise, ​​weil ich den genauen Mechanismus nicht kenne, aber wenn Sie eine Festplatte mit einem Nicht-Root-Account füllen, bleiben immer ein paar Kilobyte übrig." Vielleicht verweisen Sie auf Fundbüro? In diesem Fall können Sie als Administrator angeben, wie viel reserviert werden soll. Ich möchte sagen, dass die Standardeinstellung 5% beträgt, aber ich könnte mich irren und sie kann geändert werden. Es ist sehr nützlich, auch wenn es selten gebraucht wird. Anscheinend gibt es hier mehr darüber (ich erinnere mich an meine jahrelange Nutzung): unix.stackexchange.com/questions/18154/…
Pryftan
Anscheinend ist es nicht auf ext-Dateisysteme beschränkt: unix.stackexchange.com/questions/7950/…
Philip
Ja. Ich wusste das :) Aber danke, dass du das hinzugefügt hast.
Pryftan
10

Dieser Ansatz hat viele Aspekte. Einige von ihnen sind:

  • Root ist alles mächtig.
  • In Unix- und Unix-ähnlichen Systemen sind Systemadministrationsrechte alles oder nichts. Ein Benutzer hat entweder Root-Zugriff oder nicht, und Root-Zugriff impliziert die vollständige Kontrolle über einen Computer. Wenn der betreffende Computer von mehr als einer Person verwendet wird oder Root-Benutzer Zugriff auf andere Systeme oder Benutzerdateien haben, ist es akzeptabler, einigen Benutzern teilweise Root-Berechtigungen zu erteilen.

  • Der Root-Benutzer kann alle seine Aktionen ausblenden.
  • sudo protokolliert jeden Befehl, der über sudo ausgeführt wird. Die Aufzeichnung der mit sudo durchgeführten Aktionen hilft uns, Probleme mit einzelnen Systemen / Prozessen und allgemeinen Konfigurationsproblemen zu diagnostizieren und die erforderlichen Verbesserungen zu ermitteln.

  • Das root-Passwort gibt Ihnen Zugriff auf jeden Befehl auf einem System.
  • Sudo kann über seine Konfigurationsdatei einem Benutzer root-Zugriff auf einen bestimmten Befehlssatz gewähren. Dadurch wird auch der "Alles-oder-Nichts" -Effekt vermieden, sodass wir den einzelnen Benutzern mehr Kontrolle über ihre Maschinen verschaffen und ihnen dabei helfen können, häufige Probleme zu lösen.

    Hier ist ein guter Artikel: http://cf.stanford.edu/policy/root

    aneeshep
    quelle
    Aber wenn Sie voll sudo haben, können Sie sudo su und Ihre Aktionen verstecken.
    Wilhelm Erasmus
    8
    rm /*
    

    Nehmen wir an, Sie haben einen Verwaltungsbereich aufgeräumt. Sie haben es satt, Ihr Passwort zu vergessen sudo su. Sie werden nur für eine Sekunde abgelenkt und vergessen, dass Sie eine CD aufgenommen haben /. Dann du rm *. Ich habe es getan. Sie können alles zurückbekommen, aber es ist eine PITA. Oh, und es ist auch abgestiegen /media!

    Bambuntu
    quelle
    10
    Wir beschweren uns immer, dass unsere PCs zu langsam sind, aber es ist, als ob sie für die schnellstmögliche Ausführung eines solchen Programms optimiert sind.
    Hippie
    1
    @jippie Weil RM nur den Inode-Link zur Datei zerstört. Es dauert nicht lange, einen Link zu löschen und ein Leerzeichen als "frei" zu markieren.
    Kaz Wolfe
    @jippie, es sollte einen Build in 10 Sekunden Countdown haben
    Hoffentlich
    7

    Warum nicht root anmelden?

    Sie können zwar ein Kennwort für das Superuser-Konto erstellen, mit dem Sie sich als root anmelden können, es ist jedoch erwähnenswert, dass dies nicht die "Ubuntu" -Methode ist. Ubuntu hat speziell ausgewählt , nicht zu geben , eine Root - Login und Passwort standardmäßig für einen Grund. Stattdessen wird eine Standard-Ubuntu-Installation verwendet sudo.

    Sudo ist eine Alternative zu einem Root-Passwort, um Superuser-Pflichten zu erfüllen. In einer Ubuntu-Standardinstallation erhält die Person, die das Betriebssystem installiert hat, standardmäßig die Berechtigung "sudo".

    Jeder mit der Berechtigung "sudo" kann etwas "als Superuser" ausführen, indem er sich sudoan seinen Befehl anhängt . Um beispielsweise apt-get dist-upgradeals Superuser zu arbeiten, können Sie Folgendes verwenden:

    sudo apt-get dist-upgrade
    

    Vorteile des sudo-Ansatzes

    • Mit sudo legen Sie im Voraus fest, welche Benutzer sudo-Zugriff haben. Sie müssen sich kein Root-Passwort merken, da sie ein eigenes Passwort verwenden.

    • Wenn Sie mehrere Benutzer haben, können Sie den Superuser-Zugriff durch Entfernen der sudo-Berechtigung widerrufen, ohne das Root-Passwort ändern und alle über ein neues Passwort benachrichtigen zu müssen.

    • Sie können sogar auswählen, welche Befehle ein Benutzer mit sudo ausführen darf und welche Befehle für diesen Benutzer verboten sind.

    • Und schließlich kann bei einer Sicherheitsverletzung in einigen Fällen ein besserer Prüfpfad hinterlassen werden, der angibt, welches Benutzerkonto gefährdet wurde.

    Mit Sudo ist es einfacher, einen einzelnen Befehl mit Superuser-Rechten auszuführen. Mit einem Root-Login bleiben Sie dauerhaft in einer Superuser-Shell, die mit exitoder beendet werden muss logout. Dies kann dazu führen, dass Benutzer länger als nötig in der Superuser-Shell bleiben, nur weil dies bequemer ist als ein späteres Aus- und erneutes Anmelden.

    Mit sudo haben Sie weiterhin die Möglichkeit, eine permanente (interaktive) Superuser-Shell mit dem folgenden Befehl zu öffnen:

    sudo su
    

    ... und dies kann immer noch ohne Root-Passwort erfolgen, da sudoder suBefehl Superuser-Rechte besitzt .

    Und in ähnlicher Weise können Sie anstelle su -einer Login-Shell auch sudo su -oder sogar verwenden sudo -i.

    Dabei müssen Sie jedoch lediglich berücksichtigen, dass Sie für jeden Befehl als Superuser fungieren. Es ist ein gutes Sicherheitsprinzip, nicht länger als nötig als Superuser zu bleiben, nur um die Möglichkeit zu verringern, versehentlich Schäden am System zu verursachen (ohne diese können Sie nur Dateien beschädigen, die Ihrem Benutzer gehören).

    Um dies zu verdeutlichen, können Sie dem Root-Benutzer ein Passwort geben, mit dem Sie sich als Root anmelden können, wenn Sie die Dinge stattdessen auf diese Weise ausführen möchten. Ich wollte Sie nur über die Ubuntu-Konvention des Bevorzugens informieren sudound versuchen, einige der Gründe zu erläutern, warum Ubuntu diesen Ansatz als Standard bevorzugt.

    Warum nicht Root-Login über SSH zulassen?

    Selbst wenn Ihr Root - Benutzer ist ein Passwort , das Sie hat damit als root anmelden, ist es immer noch eine gute Sicherheitspraxis von außen direkt Root - Login zu deaktivieren, wie in SSH. Es ist sinnvoll, dass Benutzer sich erst anmelden müssen su -oder sudodanach.

    Die potenziellen Vorteile sind hauptsächlich sicherheitsbezogen:

    • Es reduziert den Angriffsvektor, indem die Möglichkeit, das root-Passwort per Fernzugriff zu erzwingen, beseitigt wird. Es ist typisch, dass ein Server im Internet ständig durch Versuche blockiert wird, das Root-Passwort über SSH zu erzwingen.

    • Es schafft eine bessere Audit - Trail , so dass auch im Fall einer Verletzung , wo der Angreifer tut Privilegien Super - User später erhalten, können Sie dessen Benutzerkonto sehen wurde verwendet , um Zugriff zu erhalten.

    thomasrutter
    quelle
    6

    Wenn Sie als root angemeldet sind, können Anwendungen, Skripte oder Befehlszeilenbefehle auf sensible Teile der Software zugreifen, die das System beschädigen können. Dies kann das Ergebnis von Unerfahrenheit seitens des Benutzers oder Programmierers oder von böswilligem verstecktem Code sein.

    Gersitar
    quelle
    5

    Es ist einfach zu einfach, als Root zu agieren. Sie können das gesamte System in nur einem Befehl zerstören ...

    Stefano Palazzo
    quelle
    5

    Ich kann hinzufügen, dass es einen Unterschied zwischen Administrator in Windows und root in Unix gibt. Der Administrator hat noch einige Einschränkungen in Systemen, in denen root keine Einschränkungen hat. Die richtige analog der Wurzel in Windows - System Benutzer.

    Die schlechte Sache, um PC unter root / System zu verwenden, ist, dass Sie versehentlich alles zerstören können, ohne Warnung vom Betriebssystem.

    Aleksei
    quelle
    3

    Gründe gegen die Verwendung von root:

    • Kann versehentlich Systemdateien zerstören
    • Könnte eine Infektion bekommen
    • Protokolliert keine Aktionen

    Gründe für die Verwendung von root:

    • Zugriff auf alles, keine Eingabe von Passwörtern
    • GUI, keine Terminals zum Verwalten von Systemdateien / -verzeichnissen

    Mir scheint, dass ein Nicht-Root-Konto immer noch Opfer dieser Gründe gegen die Verwendung von Root werden könnte. Das meiste, was hinzugefügt wird, ist eine Bestätigung für Ihre Aktionen. Ich denke, solange Sie wissen, was Sie tun, sind Sie mit root absolut sicher. Da habe ich es gesagt.

    Que
    quelle
    Obwohl es technisch gesehen eine Möglichkeit gibt, Aktionen einschließlich jedes einzelnen Befehls zu protokollieren. Dies gilt für jeden Benutzer. Siehe Prozessabrechnung zB hier: linuxjournal.com/article/6144 Und es ist nur wirklich sicher, wenn Sie root sein müssen; Andernfalls ist es nicht ganz sicher (Exploit usw.), auch wenn der Befehl sicher sein sollte.
    Pryftan
    3

    Wenn Anwendungen als Root ausgeführt werden, kann nicht garantiert werden, dass keine von ihnen ausgeführt wird

    rm -rf /
    

    (Dies ist ein Beispiel für einen Befehl, der nicht ausgeführt werden sollte.)

    segfault
    quelle
    @StefanoPalazzo Dieser Beitrag macht keinen Sinn, da der Befehl entfernt wurde. Daher habe ich Ihre Bearbeitung zurückgesetzt. Sie haben den Beitrag möglicherweise auch gelöscht. Beachten Sie, dass dieser Befehl im Gegensatz zu weit verbreiteten Irrtümern keine Dateien löscht, wenn er auf einem Ubuntu-System ausgeführt wird, sondern Befehlen ähnelt, die dies tun. Wenn Sie also befürchten, dass jemand den Befehl unwillkürlich kopiert und sein System kaputt macht, ist dies nicht wahrscheinlich. Weitere Informationen finden Sie in der Dokumentation der Optionen --preserve-rootund --no-preserve-rootin man rm.
    Eliah Kagan
    Solaris behandelt diesen Befehl als undefiniertes Verhalten gemäß einer breiten POSIX-Interpretation (und Bryan Cantrill) und gibt einen Fehler aus
    Jeremy Hajek,
    3

    Ein kenntnisreicher und sorgfältiger Benutzer gegeben, ich bin nicht sicher , dass eine richtige Antwort gibt. Ich hatte diese Antwort nicht gesehen und dachte, ich würde mitmachen.

    Was mir nicht gefällt, sind unbeabsichtigte Änderungen der Berechtigungen auf Mehrbenutzersystemen, die ich chmodspäter benötige . Das Reparieren über chmod nachträglich ist viel ärgerlicher als das Benötigen von sudo, aber es hängt davon ab, was ich geplant habe.

    Clayton
    quelle
    3

    Bei vorsichtiger Verwendung besteht keine Gefahr, sich als root anzumelden.

    Obwohl ich denke, dass das Deaktivieren von root die bevorzugte Lösung ist, da der Angreifer sie nicht brutal erzwingen konnte.

    Eine Lösung besteht darin, einen Benutzer in einer sudo-Gruppe mit einem unbekannten Namen zu erstellen gamerund sudo zum Ausführen von Verwaltungsaufgaben zu verwenden.

    Daher muss der Angreifer nicht nur das Passwort dieses Administrators erraten, sondern auch seinen Anmeldenamen. Welche ist nicht offensichtlich , wenn der Benutzer mit sudo Namen wie anmelden hat kittyoder gameroder etwas ähnliches.

    Bulat M.
    quelle
    2

    Software basiert auf gemeinsam genutzten Bibliotheken, Abhängigkeiten, Konfigurationsdateien usw. In den
    meisten Fällen führt ein einziger Klick in einer Anwendung zu einer "Kettenreaktion" mehrerer Änderungen, nicht nur dort, wo Sie dies für wahrscheinlich halten.
    Wenn sich diese Änderungen auf systemkritische Einstellungen auswirken, ist es für Sie als Benutzer von Vorteil, dies zu wissen.
    Aus diesem Grund ist der Root-Zugriff ein gutes Sicherheitsmodell:
    Wenn Ihrem System etwas Entscheidendes bevorsteht, werden Sie benachrichtigt, indem Sie nach einer Erhöhung der Berechtigungen gefragt werden.

    Pavlos G.
    quelle
    1

    Es ist ein Problem mit zwei Gesichtern und mehr als einer Antwort.

    Überprüfen Sie für einige Realitätsfragen die immer gleichen, aber so schrecklichen Antworten auf diese Fragen:

    desktop installations:

    • Verwenden Sie bei Bedarf Ihren eigenen Benutzer und sudo. Andernfalls wird der Angriffsvektor erfolgreich verwendet, da Sie nicht genau wissen, was Sie tun, und Ihr System gefährdet ist
    • In größeren Unternehmen haben Sie möglicherweise nicht einmal Root-Rechte auf Ihrer eigenen Workstation, selbst wenn Sie ein Administrator sind. Dies hängt von der Anzahl der vorhandenen Alufolienhüte ab.

    server installations:

    • Es ist ein großer Unterschied, ob Sie Ihre kurzen Arbeitssitzungen als Root ausführen (vorausgesetzt, Sie haben passwortlose Anmeldungen, eine ordnungsgemäße SSH-Schlüsselverwaltung für alle Server - und fail2ban für alle Passwortanmeldungen konfiguriert, während Sie gerade dabei sind) oder ob Sie jeden Daemon / Service haben Laufen mit einem eigenen Benutzer (was ein Muss ist) - die meisten Leute scheinen den Unterschied nicht zu erkennen
    • Zum Spaß: Versuchen Sie, Ihre versionskontrollierten Konfigurationsverwaltungstools (ansible / puppet / salt / whatever mit Dateien von einem Git-Server) nur ohne Root-Zugriff zu verwenden. (Sie haben eine Form von AAA für diese speziellen Systeme sowie für Ihre Überwachungs- und Sicherungssysteme, nicht wahr?)
    • auch: Standard rm -rf /funktioniert nicht in den meisten Mainstream-Distributionen IIRC
    • Jeder seriöse Arbeitsplatz verfügt über einen Jumphost / Bastion-Host für den Zugriff auf die Server-Flotte, der alles protokolliert, was Sie sowieso tun, was wahrscheinlich durch 2FA weiter geschützt wird
    • Wenn Sie sudo und keinen Jumphost haben, können Sie die Hosts-Protokolle so einrichten, dass sie ohnehin in Echtzeit gespiegelt werden.
    • Wenn auch die SSH-Protokolle "bereinigt" werden, kann nicht einmal nachgewiesen werden, dass Sie sich auf dem Host befinden, wenn kein weiteres Netzwerküberwachungssystem vorhanden ist

    Für jede Unternehmensgröße (sprich: höchstwahrscheinlich SOHO mit einer statischen IP-Adresse) zwischen diesen beiden Extremen, denen angemessene Überwachungs-, Sicherungs-, Automatisierungs- und Protokollierungsmaßnahmen fehlen, kann es nützlich sein, die Verwendung von sudo auf Servern zu erzwingen. (Dies wird von Personen umgangen, die nach dem sudo su -Herstellen der Verbindung so schnell wie möglich das Protokollieren durchführen, sodass alle Ihre Absichten, das Geschehene zu protokollieren, auch ohne böswillige Absichten verloren gehen, sobald mehr als ein Root-Benutzer angemeldet ist. Viel Glück beim Ändern dieses Problems durch erzwungene Verfahren und das Behandeln von Personen mit drakonischen Absichten Maßnahmen für die Nichteinhaltung der Regeln. Das Leben findet immer einen Weg.)

    Wenn Sie jedoch nicht über mindestens fail2ban verfügen, um Ihre Kennwortanmeldungen zu sichern (falls vorhanden, insbesondere bei Systemen mit Internet-Zugang), sollten Sie auch auf eine ordnungsgemäße Kennwortverarbeitung achten (Tools zur Kennwortverwaltung, Aufbewahrungsrichtlinien, keine Hauptkennwörter, Umgang mit diesen beim Mitarbeiter) Fluktuationen ...) und haben eine Form des richtigen Update-Managements für die Serverflotte, so dass alle Server regelmäßig gepatcht werden. Wahrscheinlich werden Sie eines Tages sowieso gehackt, sei es von innen oder von außen.

    Und immer sudoreligiös gebraucht zu haben und seinen Gebrauch bei allen Menschen durchzusetzen, ändert nichts an Ihrer Wahrscheinlichkeit, in diesem Fall viel zu besitzen.

    sjas
    quelle
    Endlich eine echte und differenzierte Antwort, anstelle der üblichen "Mach das nie" -Mantras. +1 und danke dafür.
    Andreas H.
    0

    Letztendlich schadet es nicht, als root zu laufen. Es sind nur ein paar paranoide Leute, die denken, dass eine Neuinstallation eines Betriebssystems unmöglich ist. Das Argument "Jemand könnte ein Programm kompromittieren ...", na und? Wenn sie das tun, können sie Ihr Kennwort bereits keyloggen oder einfach eine Root-Kennwortanforderung anzeigen und Sie können ihnen das Kennwort geben. Puste dein System weg, weil du alles in / auswählst und löschst? na ja, hol den Installer raus und installiere neu. Es dauert weniger als 20 Minuten, schnappen Sie sich einen Kaffee und entspannen Sie sich. Root ist in Ordnung, ich habe root ausgeführt, solange ich mich erinnern kann und weißt du, was es tut? Dadurch wird die Installation von Paketen zum Kinderspiel. Sie müssen das root-Passwort nicht alle 5 Minuten eingeben, wie Sie es normalerweise tun müssen. Sie haben keine Probleme beim Speichern / Bearbeiten von Systemkonfigurationsdateien, weil sie Nur für Root-Berechtigungen. Es ist viel einfacher und besser, als root zu laufen.

    Corky
    quelle