Frage Was ist falsch daran, immer root zu sein?


Ich habe das Gefühl, dass das eine dumme Frage ist, aber das ist etwas, worüber ich mich eine Weile gewundert habe.

Ich habe ein VPS und dies ist mein erstes großes Linux-Projekt. Ich bin die einzige Person, die Zugang dazu hat. Meine Frage ist, was ist falsch daran, sich einfach als root anzumelden anstatt einen Account zu erstellen und ihnen den sudo Zugang zu geben? Wenn ein Sudoer alles tun kann, was root kann, was ist dann der Unterschied? Wenn ein Hacker mein Passwort für mein Standardkonto ohne Rootberechtigung knacken könnte, könnte er auch sudo-Befehle ausführen. Wie also macht ein Hacker, der meinen root-Account knackt, mehr oder weniger Probleme?


81
2017-08-24 14:23


Ursprung


Ich würde auch bemerken, dass, wenn Sie mit dem "Unix Way" nicht vertraut sind, dies keine dumme Frage ist. Sie sollten einen Bonus bekommen, wenn Sie denken, die Frage als neuen Linux-Administrator zu stellen. - Bart Silverstrim
Und ich möchte einige der Antworten kommentieren. Besonders diejenigen, die sagen "Du kannst Sachen als Wurzel versauen". Ich denke nicht, dass das der Punkt ist ... "rm -rf /" macht dasselbe wie "sudo rm -rf /". Der Punkt liegt darin, dass Dinge wie "sudo rm" nicht funktionieren, doch "sudo startMyApp on low port" funktioniert. - Zlatko
Was ist falsch daran, nie zu sein? - ostendali


Antworten:


Wenn Sie als root angemeldet sind, können Sie einfach Verzeichnisse löschen oder etwas tun, das im Rückblick mit einem Fingerdruck auf das System wirklich stumm ist, während Sie als Benutzer normalerweise ein paar zusätzliche mentale Zyklen in das setzen müssen, was Sie tun tippen, bevor Sie etwas tun, was gefährlich ist.

Auch jedes Programm, das Sie als root ausführen, bedeutet root, dh wenn Sie von jemanden oder etwas dazu gebracht werden, eine gefährliche Website zu starten, zu kompilieren oder zu durchsuchen, wie z. B. einem Trojaner oder anderer Malware, hat er vollen Zugriff auf Ihre System und kann tun, was es will, einschließlich Zugriff auf TCP-Ports unter 1024 (so kann es Ihr System zum Beispiel zu einem Remailer ohne Ihr Wissen machen).

Im Grunde bittet man um Probleme, die sich durch die Anmeldung verhindern lassen. Ich habe viele Leute kennengelernt, die froh waren, dass sie in einem Moment der Sorglosigkeit dieses Sicherheitsnetz hatten.

BEARBEITEN: Es gibt auch das Problem, dass root am bekanntesten ist, also ein einfaches Ziel für Skripte und Hacks. Systeme, die das Konto deaktivieren und Benutzer stattdessen zur Verwendung von sudo zwingen, bedeuten, dass jeder Versuch, root von ssh oder einem lokalen Exploit für das Konto zu knacken, gegen eine Wand hämmert. Sie müssten ein Passwort erraten / knacken und Nutzername. Es ist Sicherheit durch Dunkelheit zu einem gewissen Grad, aber es ist schwer zu argumentieren, dass es die meisten Skript-Kiddie-Angriffe nicht vereitelt.


71
2017-08-24 14:30



+1 - Die Verwendung von "sudo" macht das Ausführen von Programmen als root zu einer Overt-Aktion. Es geht nicht darum, "Hacker zu stoppen", es geht darum, dass man sich daran gewöhnt, als nicht-privilegierter Benutzer zu arbeiten und den Aufruf von root-Privilegien zu einer beabsichtigten, offenen Handlung zu machen. - Evan Anderson
Ich beginne mich zu fragen, ob Evan wirklich eine KI ist. - Bart Silverstrim
Sudo fügt auch einen Audit-Trail hinzu. Als wer, was und wann wird geloggt, wenn es als sudo ausgeführt wird. Welche Log-Datei kann mit Distro variieren, aber RedHat-Distributionen neigen dazu, / var / log / secure zu verwenden, und Ubuntu verwendet /var/log/auth.log...Ich bin mir nicht sicher, ob dies für alle Debian-basierten Distributionen zutrifft. - 3dinfluence
+1 - es geht nicht nur um Rechte, Dinge zu schaffen oder Sachen zu machen, es geht auch um Rechte zu zerstören. Anmelden als root (oder das Äquivalent auf jedem anderen Betriebssystem für diese Angelegenheit) ist wie herumlaufen mit einer Waffe mit der Sicherheit aus. Sie werden diesen Auslöser vielleicht nie absichtlich berühren, aber würden Sie sich darauf verlassen, dass Sie es trotzdem tun? - Maximus Minimus
mh: / ich ziehe seinen Cowboyhut an, schieße die Sicherheit an seiner Pistole ab, öffne ein Bier, murmele in einem leisen Grummeln etwas über Stiefmütterchen und meldet sich dann als Wurzel an. - Kyle Brandt♦


Wenn Sie einem Idioten nicht erlauben würden, sich als root bei Ihrem Server anzumelden, sollten Sie nicht immer selbst als root laufen. Es sei denn, Sie können das Herz weiterreichen, sagen Sie noch nie war ein Idiot. Nicht wirklich? Bist du sicher? :)

Vorteil: reduziert die Wahrscheinlichkeit, dass Sie root sind und ein Idiot gleichzeitig.


29
2017-08-24 14:41



+1 - "Vorteil: verringert die Wahrscheinlichkeit, dass Sie gleichzeitig Root und Idiot sind." Ich liebe das absolut. - Evan Anderson
+1 für die Philosophie von Scott Adams, dass jeder ein Idiot ist. :) Ja, das heißt du und ich auch. - Ernie
Absolut - das ist eine meiner Schlüsselfragen in Vorstellungsgesprächen - wann hast du zuletzt versagt? Jeder hat, Sie müssen nur die Threads hier über "amüsantesten sysadmin fubar" oder was auch immer lesen. Wenn jemand nicht zugeben wird, dass er mindestens einmal in seinem Leben einen wirklich dummen Fehler gemacht hat, gibt es wahrscheinlich eine Handvoll Gründe, warum man nicht mit ihnen arbeiten möchte. - Tom Newton


Der Hauptgrund sind Fehler. Wenn Sie immer root sind, könnte ein einfacher Tippfehler das System wirklich vermasseln. Wenn Sie sich nur als root anmelden oder sudo verwenden, um Dinge zu tun, die es erfordern, minimieren Sie das Risiko, einen gefährlichen Fehler zu machen.


9
2017-08-24 14:31





Wenn Sie root sind, werden Sie faul mit Berechtigungen, da Sie jederzeit Zugriff auf alles haben. Es ist Ihnen egal, wann die Dinge 777 oder 644 oder was auch immer sind. Wenn Sie also irgendjemanden an Ihr System weiterleiten lassen, damit Sie nicht auf alles zugreifen können, wird es plötzlich zu einer schweren Not, die Maschine für andere Benutzer sicher zu machen.


9
2017-08-24 14:38



Dies wird "Wurzelfäule" genannt. - kmarsh
Ich mag diesen Begriff "Wurzelfäule". In der Tat, wenn man als root die ganze Zeit läuft, kann man * nix-Maschinen in verrückte Windows 95-ähnliche Maschinen verwandeln, ohne die Sicherheit mehrerer Benutzer. (Ich erinnere mich an eine SCO-Maschine vor Jahren, wo jeder Benutzer in der App für die gemeinsame Buchhaltung als root ausgeführt wurde, weil "dadurch die Berechtigungsprobleme weggingen".> Seufz <) - Evan Anderson
Ich erinnere mich, dass ich eine solche Erklärung bekommen habe - sie hatten ein Mailinglisten-Tool, das als root läuft, zusammen mit sendmail. Meine Antwort war: "Die Erlaubnisprobleme gingen auch für die Hacker weg." - duffbeer703


Es gibt ein paar Schlüsselprinzipien hinter der Anmeldung als root: 1) Das Root-Passwort wird bei der Anmeldung niemals über das Netzwerk gesendet 2) Keine Möglichkeit zu sagen, wer etwas gemacht hat, wenn sich mehrere Benutzer als dasselbe Konto anmelden (root oder andere). 3) Versehentlich etwas "dummes" tun


7
2017-08-24 14:31





Es dient eher dem Schutz vor sich selbst, so dass Sie eine zweite Chance haben, die Befehle mit höherer Berechtigung, die Sie ausführen möchten, zu überprüfen, analog zur UAC in Windows. Es ist ziemlich einfach, versehentlich etwas zu tun rm -rf / während als root angemeldet.

Außerdem haben Sie Rückverfolgbarkeit. Dies ist kein großes Problem in Ihrer Situation, in der Sie (als einzige) (theoretisch) Befehle erteilen, aber die Fähigkeit, sich auf eine Person zu loggen und zurückzuverfolgen, ist eine Schlüsselkomponente für viele Analyseformen.


3
2017-08-24 14:30



Die Rückverfolgbarkeit ist entscheidend in Systemen, in denen mehr als eine Person als Systemadministrator arbeitet. Es ist nicht nur wünschenswert, dass es von Regulierungsregimen vorgeschrieben wird. - APC
Ich habe das am Freitag gemacht. Anstatt "/ dump / folder /" zu löschen, habe ich den Ordner / gelöscht. Ein stinkender Backslash erinnerte mich daran, dass wir uns nicht als Root einloggen. - oneodd1


Der Unterschied ist hauptsächlich:
dass du durch Zufall nichts Schlimmes tun kannst.
Dieser "böse" Code kann das System nicht übernehmen.
Hinweis: Böser Code bedeutet nicht unbedingt, dass jemand bereits Zugriff auf das System hat.


2
2017-08-24 14:30



Ich habe bemerkt, dass böser Code in diesen Tagen normalerweise Spam-Bots bedeutet, die wie jeder andere Nutzer laufen können. - Ernie
Wenn Sie an einen Virus (versuchen, etwas zu zerstören) oder ein Rootkit denken, dann ist es für die Malware viel komplizierter, wenn Sie kein Root sind. - StampedeXV


Sie sollten immer Konten mit der niedrigsten möglichen Berechtigungsebene verwenden. Wenn Sie als root laufen, fördern Sie schlechte Angewohnheiten und Faulheit, die das Leben unangenehm machen, wenn Sie mit mehreren Benutzern arbeiten oder etwas einem öffentlichen / halböffentlichen Netzwerk aussetzen.

Denken Sie auch daran, dass das Cracken von Passwörtern nur ein Kompromiss-Szenario ist - und auch nicht das häufigste Szenario. Sie werden eher Opfer einer Browser-Schwachstelle oder einer Schwachstelle in einem Daemon, der auf Ihrem System läuft.

Denken Sie an Code, den Sie verwenden, ohne zu denken. Zum Beispiel der Linux-Port von Adobe Flash, der ein dampfender Haufen Poop ist, der erst in der relativ jungen Vergangenheit nutzbar geworden ist. Wie sicher denken Sie, dass Code ist? Möchten Sie, dass Sie die volle Kontrolle über Ihr System ausüben können?


2
2017-08-24 14:37





Mein Rat wäre, die ganze Zeit Root zu benutzen; du wirst bald herausfinden, warum du nicht :)


2
2017-08-24 15:36





Es kann vor Brute-Force-Angriffen durch SSH schützen. Jedes Unix hat einen 'root' Account. Es ist jedoch von außen nicht klar, was Ihr 'sudo'-Benutzername wäre. Wenn also jemand versuchen will, sich brutal einzugewöhnen, wissen sie, dass es einen Root-Account gibt, und werden es wahrscheinlich versuchen. Sie wissen jedoch nicht, wo Sie anfangen sollen, wenn Sie Sudo verwenden.


2
2017-08-24 15:40