Ist "sudo su -" eine schlechte Praxis?

13

Hintergrund

Ich kenne den Unterschied zwischen su -, sudo su -und sudo <command>:

  • su - - wechselt Benutzer zu root, erfordert das root-Passwort
  • sudo su - - Wechselt den Benutzer zu root, erfordert nur das Kennwort des aktuellen Benutzers
  • sudo <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:

  1. 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, dass su -es besser ist, da der Administrator das eigentliche root-Passwort teilen müsste.

  2. 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 anmelden sudo su -, wird ausgeführt , bevor sie mit der Arbeit beginnen. Dann geht eines Tages etwas kaputt und es ist nicht mehr nachvollziehbar, wer rm -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.

Kingand
quelle
4
sudo su -ist ziemlich dumm, da sudo -ies im Wesentlichen dasselbe tut, mit weniger Tastenanschlägen.
Michael Hampton
Ich bin mit @MichaelHampton einverstanden. Normalerweise starte ich jedoch sudo basheinfach, um einen Teil des Anmeldungsaufwands zu vermeiden. Wenn ich darüber nachdenke, kann dies jedoch nicht so viel vermeiden, wie ich mir vorstelle.
Ericx
2
@ericx Betrachte auch sudo -s.
Michael Hampton

Antworten:

11

Schauen wir uns Ihre Fälle an:

 su -

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).

 sudo /bin/sh

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.

 sudo su -

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.

mdpc
quelle
Ich habe den Unterschied in der Umgebung zwischen sudo und su völlig übersehen. Vielen Dank!
Kingand
0

* In Anbetracht der obigen Bedenken ist es immer eine gute Idee, Benutzern die Verwendung von sudo su zu erlauben *

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.

oder su - überhaupt

Da ich die Root-Anmeldung immer deaktiviere, ist su notwendig und macht den Server insgesamt sicherer.

Ron Lawhorn
quelle
2
Die Tatsache, dass nicht jeder das root-Passwort aktiv weitergeben muss, hat wichtige sicherheitskulturelle Vorteile, die nicht übersehen werden sollten.
Falcon Momot
0

Das OP scheint viele gute Gründe zu liefern, um die allgemeine Verwendung nicht zuzulassen / zu ermutigen, sudo bashoder sudo 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 suwahrscheinlich nicht.

MarkHu
quelle