Was sind die tatsächlichen Vorteile der Zuweisung von sudo-Berechtigungen an einen Benutzer anstelle der Verwendung von root?

25

Ich bin ziemlich neu in der Serververwaltung, und ich habe viele Websites gesehen, die empfehlen, einem Benutzer, der vom Root-Benutzer erstellt wurde, Sudo-Berechtigungen zuzuweisen und dem Root-Benutzer ein wahnsinnig langes Kennwort zur Verbesserung der Sicherheit zu geben.

Wenn der neu erstellte Benutzer jedoch die gleichen Funktionen wie ein Root-Benutzer ausführen kann, was ist der eigentliche Vorteil davon?

JM4
quelle
7
Der sudoer kann nicht alles tun, was root kann, nur was root sudoern erlaubt, und der sudoer muss den Befehl noch sudo. Zum Schluss werden sudo-Dinge als eigenes Benutzerkonto angezeigt. Dies bedeutet zum einen, dass sie sich nicht als root anmelden müssen, und zum anderen, dass Sie sehen können, wer etwas verändert hat.
KeithS

Antworten:

48

Es gibt mehrere Vorteile, sudowenn Sie das root-Passwort weitergeben. In keiner bestimmten Reihenfolge:

  • Sie geben Ihr Root-Passwort nicht heraus
    Wenn jemand Ihr Unternehmen verlässt und die Root-Passwörter kennt, müssen Sie diese Passwörter in der Regel überall ändern. Bei ordnungsgemäßem Konfigurationsmanagement ist dies eine geringfügige Störung. Ohne es ist es eine große Aufgabe.


  • sudoWenn Sie die Schlüssel für das Königreich nicht preisgeben, können Sie eine eingeschränkte Liste von Befehlen angeben, die Benutzer ausführen können. Wenn Sie also entscheiden, dass Alice nur die Fähigkeit zum Stoppen und Starten von Apache benötigt, Bob jedoch die vollständigen Root-Rechte, die Sie festlegen können sie entsprechend auf.

  • Sie können die Autorisierung zentral verwalten und sudo die LDAP-Konfiguration unterstützen. Dies bedeutet, dass jedes System in Ihrem Unternehmen auf einem zentralen LDAP-Server ermitteln kann, wer was tun darf.
    Müssen Sie jemanden autorisieren (oder de-autorisieren)? Ändern Sie die sudoers-Konfiguration in LDAP und alle Ihre Systeme werden auf einmal aktualisiert.

  • Es gibt einen Audit-Trail.
    Mit Ausnahme von Benutzern, die dazu berechtigt sudo su -sind sudo sh, oder etwas Äquivalentes, sudowird ein Audit-Trail erstellt, in dem angegeben ist, welcher Benutzer welche Befehle ausgeführt hat.
    (Es wird auch eine Liste der Personen erstellt, die sich selbst eine nicht angemeldete Wurzelschale gegeben haben, sodass Sie mit dem Finger auf sie zeigen und missbilligend zischen können.)

  • sudoist gut für mehr als nur root Jeder konzentriert sich auf sudoeine Art und Weise zu tun Sachen wie die su peruser, aber nicht , dass das alles für sie gut ist.
    Angenommen, Alice ist für einen bestimmten Software-Build verantwortlich, aber Bob sollte auch in der Lage sein, das Build-Skript auszuführen. Sie können Bob einen Eintrag in sudoers geben, mit dem er das Build-Skript als Benutzer von Alice ausführen kann. (Ja, sicher, es gibt viel bessere Möglichkeiten, mit diesem speziellen Fall umzugehen, aber das Prinzip von Let user A run a program as user Bkann nützlich sein ...).
    Sie erhalten auch die gleichen Audit-Trail-Vorteile, die ich oben erwähnt habe, wenn Sie dies tun ...

voretaq7
quelle
1
Sehr hilfreiche Antwort - wenn ich weiß (und mit 100% iger Gewissheit meine), dass ich der einzige sein werde, der einen einzelnen Server verwaltet, sehen Sie einen großen Vorteil darin, einem anderen Benutzer Sudo-Berechtigungen zuzuweisen (was ohnehin ich selbst wäre) außerhalb davon zu verhindern, dass ich etwas vermassle?
JM4
3
@ JM4 Konsistenz und bewährte Verfahren für einen Tag in der Zukunft, wenn Sie in einer größeren Umgebung arbeiten. Aus praktischer Sicht sollte man sich nie direkt Anmeldung als root sein , wenn Sie auf der physischen Konsole sind Festsetzung etwas , das fürstlich abgespritzt wird, so sudogegen sueine akademische Auszeichnung ist - Sie werden durch einen Reifen oder die andere haben , um zu springen. Die Verwendung sudobietet Ihnen die Möglichkeit, das Prinzip des geringsten Privilegs (mein letzter Punkt) in die Tat umzusetzen, und das ist immer etwas, das Sie ernsthaft in Betracht ziehen sollten.
Voretaq7
2
Verwenden Sie auch visudo , um Ihre sudoers-Datei zu bearbeiten.
Justin Dearing
3
Beachten Sie, dass viele interaktive Befehle es Benutzern ermöglichen, den Audit-Trail zu umgehen. Zum Beispiel kann jeder Benutzer, der sudo vikann :! basheinmal in vi.
Dietrich Epp
4
@DietrichEpp Das NOEXECTag hilft in diesem Fall.
Shane Madden
17

Der Hauptunterschied besteht darin, dass sich Benutzer sudomit ihrem eigenen Passwort authentifizieren, während bei der sudirekten Anmeldung als Root das Root-Passwort verwendet wird.

Dies bedeutet, dass Sie das Root-Passwort nicht für alle und andere Benutzer freigeben müssen. Wenn Sie den Root-Zugriff für einen oder zwei Benutzer in der Zukunft deaktivieren müssen, können Sie ihn einfach für diese Benutzer deaktivieren, anstatt ihn ändern zu müssen root-Passwort.

sudokann auch einschränken, welche Befehle jeder Benutzer als Root ausführen kann, sodass bestimmten Benutzern nur dann Zugriff auf die Aufgaben gewährt werden kann, die sie ausführen müssen, wenn sie keinen vollständigen Root-Zugriff benötigen.

Michael Hampton
quelle
1
Danke für deine Hilfe. Ich sehe den Vorteil von Ihrem Punkt, aber ich habe auch einen Basisbenutzer für den Root-Benutzer als doppelten Authentifizierungspunkt betrachtet, vorausgesetzt, ich habe die Anmeldung des Root-Benutzers von ssh auf meinem Server deaktiviert.
JM4
4

Vergessen Sie nicht, dass ein Benutzer, der als root angemeldet ist, bei jedem Befehl möglicherweise das System beschädigen kann. Wenn Sie sie zwingen, sudo einzugeben, bevor Sie etwas möglicherweise Gefährliches tun, machen Sie sie zumindest darauf aufmerksam, dass sie vor dem Ausführen eines bestimmten Befehls eine Überprüfung durchführen müssen.

Gyin
quelle
2

Ja, aus Sicht der Kontrolle und Protokollierung ist sudo viel besser.

Zum Beispiel - wenn Sie das einzige Ereignis sind, das in den Protokollen erfasst wird, ist das, was Sie verklagen. Alles danach geht als root. Und wenn Sie sich jemals Protokolle unter Unix / Linux angesehen haben, wissen Sie, dass root eine ganze Menge Dinge erledigt.

Sudo hingegen protokolliert so ziemlich alles, WIE der ursprüngliche Benutzer.

kd1s
quelle
0

Die Verwendung von sudo erschwert einem böswilligen Benutzer den Zugriff auf ein System. Wenn es ein entsperrtes Root-Konto gibt, kennt ein böswilliger Benutzer den Benutzernamen des Kontos, das er knacken möchte, bevor er startet. Wenn das Root-Konto gesperrt ist, muss der Benutzer den Benutzernamen und das Kennwort bestimmen, um in ein System einzubrechen.

Prof. McAnthony
quelle