Ich habe oft gehört, dass es besser ist, sich als root anzumelden, als sich direkt als root-Benutzer anzumelden (und natürlich sagen die Leute auch, dass es noch besser ist, sudo zu verwenden). Ich habe nie wirklich verstanden, warum einer besser ist als der / die andere (n), Einsicht?
33
Antworten:
Der Rückschluss erfolgt nur auf
su
odersudo
bei Bedarf.Die meisten alltäglichen Aufgaben erfordern keine Root-Shell. Es empfiehlt sich daher, eine nichtprivilegierte Shell als Standardverhalten zu verwenden und dann nur dann als Root zu fungieren, wenn Sie spezielle Aufgaben ausführen müssen.
Auf diese Weise verringern Sie den Bereich für gefährliche Fehler (fehlerhaftes Scripting, falsch platzierte Platzhalter usw.) und Schwachstellen in allen von Ihnen verwendeten Anwendungen. Vor allem diejenigen, die sich mit dem Internet verbinden - siehe das alte Sprichwort "Don't IRC as root" .
sudo
wird oft empfohlen, weil Sie damit die Verwendung solcher Berechtigungen überprüfen können.Wenn Sie diese Vorgehensweisen beachten, können Sie auch Remote-Root-Anmeldungen deaktivieren. Dies erhöht die Zugangsbeschränkung für jeden potenziellen Angreifer, da er sowohl ein reguläres Benutzerkonto, das Mitglied der Gruppe "wheel" war und idealerweise nur von öffentlichen SSH-Schlüsseln autorisiert wurde, als auch das Root-Konto selbst gefährden müsste.
quelle
sudo
ist überlegen,su
ermöglicht es Ihnen auch, das-m
Flag zu verwenden, um die Umgebungsvariablen in einem Root-Terminal gleich zu halten. Nichts treibt mich mehrsu
an als ein bisschen zu rooten , nur um etwas mit~
dem Verzeichnisnamen zu tun und es nicht funktionieren zu lassen.Sie sollten den Remotezugriff auf Root deaktivieren, damit ein Angreifer Root nicht gefährden kann, ohne zuerst einen Benutzer zu gefährden und dann auf Root zu eskalieren. Wir aktivieren den Root-Zugriff nur an der Konsole.
Außerdem schafft es Rechenschaftspflicht. :)
quelle
Der Hauptgrund ist die Erstellung eines Audit-Trails. Wenn Sie sich als normaler Benutzer bei einem System anmelden müssen und dann su, können Sie nachverfolgen, wer für bestimmte Aktionen verantwortlich ist.
quelle
sudo protokolliert außerdem automatisch jeden Befehl in syslog und Sie können die Befehle definieren, die jeder Benutzer verwenden kann.
quelle
sudo vim foo.txt
von vim aus auf eine Shell ziehen, erhalten Sie eine Root-Shell ohne die reguläre Sudo-Protokollierung.sudo -i
um eine interaktive Sitzung zu erhalten ...Ein weiterer guter Grund: Wenn ein Benutzer über sudo zum Root-Benutzer aufsteigt, authentifiziert er sich mit seinen eigenen Anmeldeinformationen. Dies bedeutet, dass er nicht unbedingt das Root-Kennwort erhalten muss, wodurch das Sperren von Daten erleichtert wird, wenn jemand Ihr Unternehmen verlässt.
quelle
Wenn Sie einen Audit-Trail erstellen und nicht den hier erwähnten Problemen "sudo su -" oder "sudo vim foo.txt" zum Opfer fallen möchten, können Sie "sudosh" verwenden. Verteilen Sie den Root-Zugriff über sudo, aber geben Sie den einzigen zulässigen Befehl ein, um "sudosh" auszuführen.
sudosh ist eine Protokollierungsshell, und Sie können die gesamte Terminalsitzung zu einem späteren Zeitpunkt erneut abspielen und dabei genau anzeigen, was der Benutzer auf seinem Terminal gesehen hat.
quelle
Sie sollten die Sicherheit gründlich üben.
Deaktivieren Sie den Remotestammzugriff (oder zumindest den Stammzugriff über Kennwörter). (Wenn Sie den Root-Zugriff über Schlüssel zulassen, kontrollieren Sie diese Schlüssel sorgfältig, oder verwenden Sie besser so etwas wie Kerberos, das die zentralisierte Sperrung von Schlüsseln ermöglicht.)
Ich würde su deaktivieren und sudo verwenden. Auf diese Weise verwenden Benutzer Schlüssel (vorzugsweise verschlüsselt), um auf das System zuzugreifen, und verwenden dann ihr Kennwort nur zur Eskalation von Berechtigungen. Sie können einschränken, auf welche Programme die Benutzer mit sudo zugreifen, aber meistens beschränken Sie den Zugriff nur auf Personen, die das root-Passwort kennen.
In einer idealen Welt sollten Sie in der Lage sein, Ihre Root-Passwörter im Internet zu veröffentlichen, und es wäre auch dann unerheblich, wenn Sie Benutzern Zugriff auf Ihren Computer gewähren (diese aber nicht in die Datei / etc / sudoers aufnehmen). Natürlich sollten Sie das root-Passwort nicht veröffentlichen, aber die Idee ist, dass Sie Ihre Systeme mit konzentrischen Schutzebenen schützen.
quelle
Die Idee ist, die Root-Anmeldung zu deaktivieren und daher kein Standard-Administratorkonto zu haben. Auf diese Weise muss ein Angreifer sowohl den Benutzernamen als auch das Passwort (und nicht nur das Passwort) erraten.
quelle
Wenn Sie regelmäßig root verwenden, sind Ihre Berechtigungen möglicherweise falsch, oder Sie müssen möglicherweise sudo-Rechte oder neue Gruppenrechte für r / w / x der Dateien oder Verzeichnisse erteilen.
Gute Berechtigungsschemata sind etwas, was selbst Linux-Langzeitbenutzer falsch verstehen oder den Umfang, den sie haben, nicht erkennen.
Lass mich nicht mal anfangen, was Ubuntu gemacht hat!
quelle
Es hindert Sie daran, rm -r -f auszuführen / Ich habe es vor 2 Tagen ausgeführt (als nicht privilegierter Benutzer wollte ich rm -r -f * ausführen).
quelle