Hintergrund
Ich kenne den Unterschied zwischen su -
, sudo su -
und sudo <command>
:
su -
- wechselt Benutzer zu root, erfordert das root-Passwortsudo su -
- Wechselt den Benutzer zu root, erfordert nur das Kennwort des aktuellen Benutzerssudo <command>
- gewährt Root-Zugriff nur für einen bestimmten Befehl; erfordert nur das Passwort des aktuellen Benutzers
Meine Frage ist, ob die Verwendung sudo su -
in einer Produktionsumgebung eine sichere Praxis ist oder nicht .
Einige Gedanken:
Es scheint, als würde das Zulassen
sudo su -
ein Sicherheitsrisiko darstellen, indem der Zugriff auf das Root-Konto von individuellen Benutzerkennwörtern abhängig gemacht wird. Dies kann natürlich durch die Durchsetzung einer strengen Kennwortrichtlinie verringert werden. Ich denke nicht, dasssu -
es besser ist, da der Administrator das eigentliche root-Passwort teilen müsste.Wenn Benutzer vollständig zum Root-Konto wechseln können, ist es schwieriger, den Überblick darüber zu behalten, wer Änderungen am System vornimmt. Ich habe Fälle bei meiner täglichen Arbeit gesehen, in denen mehreren Benutzern
sudo su -
Zugriff gewährt wurde. Das erste, was die Benutzer tun, wenn sie sich am System anmeldensudo su -
, wird ausgeführt , bevor sie mit der Arbeit beginnen. Dann geht eines Tages etwas kaputt und es ist nicht mehr nachvollziehbar, werrm -rf *
im falschen Verzeichnis lief.
Fragen
Ist es in Anbetracht der oben genannten Bedenken jemals eine gute Idee, Benutzern die Verwendung zu erlauben sudo su -
oder sogar su -
überhaupt?
Gibt es Gründe, warum ein Administrator Benutzerkonten für sudo su -
oder su -
anstelle von sudo <command>
(abgesehen von Faulheit) konfigurieren würde ?
Hinweis: Ich ignoriere den Fall, dass der Benutzer ausgeführt wird sudo su -
oder su -
der Administrator Systemänderungen vornehmen muss, wenn der direkte SSH-Zugriff für den Root-Benutzer deaktiviert wurde.
sudo su -
ist ziemlich dumm, dasudo -i
es im Wesentlichen dasselbe tut, mit weniger Tastenanschlägen.sudo bash
einfach, um einen Teil des Anmeldungsaufwands zu vermeiden. Wenn ich darüber nachdenke, kann dies jedoch nicht so viel vermeiden, wie ich mir vorstelle.sudo -s
.Antworten:
Schauen wir uns Ihre Fälle an:
wird a / bin / sh als root-Benutzer unter Verwendung der root-Umgebung ausführen. Das root-Passwort wird benötigt und die Protokollierung KANN in Abhängigkeit von den Syslog-Einstellungen protokolliert werden (normalerweise ist dies /var/log/auth.log).
Führt die Shell als Root-Benutzer mit den aktuellen Umgebungsvariablen aus (mit einigen Ausnahmen, die in der sudoers-Datei definiert sind). Das Passwort ist das Quell-User-Passwort und NICHT das Root-User-Passwort. sudo wird normalerweise protokolliert.
Führt eine Shell (normalerweise / bin / sh) als Root-Benutzer aus und richtet die Umgebung als Root-Benutzer ein. Dies erfordert das Passwort des Quellbenutzers und wird in der Regel protokolliert.
Manchmal ist es erforderlich, dass die Root-Umgebung über Ihrer eigenen Umgebung liegt, daher ist dies eine geeignete Methode. Denken Sie daran, dass sudo in beiden Fällen weiterhin die Verwendung des Shell-Befehls protokolliert.
quelle
Nein, meiner Meinung nach nicht. Es hat keinen praktischen Vorteil gegenüber dem Zulassen von su, es sei denn, sie benötigen dazu kein root-Passwort.
Da ich die Root-Anmeldung immer deaktiviere, ist su notwendig und macht den Server insgesamt sicherer.
quelle
Das OP scheint viele gute Gründe zu liefern, um die allgemeine Verwendung nicht zuzulassen / zu ermutigen,
sudo bash
odersudo su -
da dies sie in einen allmächtigen Modus versetzt, dessen Interna im Allgemeinen nicht protokolliert werden. Und sie könnten vergessen, dass sie sich in diesem Modus befinden und etwas tun ... Bedauerliches.Ergo scheint es sicherer zu sein, die meisten Benutzer auf das Ausführen
sudo on/a/particular/command/
oder die Liste der Befehle zu beschränken. Auf diese Weise wird jeder sudo-Befehl protokolliert.Werden Sie in der Praxis auf Ausnahmen stoßen? Sicher. Ist die Reaktion auf solche Ausnahmen auf die faule Praxis des uneingeschränkten zurückzugreifen -
sudo su
wahrscheinlich nicht.quelle