sollte sudo oder nur su root in der Serververwaltung verwenden?

8

Welcher Ansatz ist besser?

Für die Desktop-Nutzung scheint sudo besser zu sein, da:

  • Ich kann als normaler Benutzer eine konsistentere Historie haben
  • Sie müssen sich nicht zwei Passwörter merken, was besonders dann der Fall ist, wenn ich nicht regelmäßig administrative Aufgaben erledige.
  • Bei der Installation muss kein zusätzliches Root-Konto erstellt werden.

Aber etwa in der Serververwaltung?

Auf dem Server haben Sie normalerweise bereits ein Root-Konto erstellt und erledigen wahrscheinlich häufig administrative Aufgaben. Die Vorteile von sudo scheinen also nicht mehr zu gelten.

Darüber hinaus ist es in den meisten Distributionen einfach, su über die Befehlszeile zu konfigurieren. Fügen Sie einfach den Benutzer zur Radgruppe hinzu. (Sie können sogar übergeben, -G wheelwenn useradding.) Somit kann die Konfiguration von su einfach in Shell-Skripte automatisiert werden.

Aber für Sudo? Sie müssen zuerst den Benutzer hinzufügen und dann visudointeraktiv ausführen . Dies ist schlecht, da Sie es nicht in Shell-Skripte automatisieren können.

(Nun, das kannst du. Zum Beispiel

echo '%wheel    ALL=(ALL)   ALL' >> /tmp/sudoers.tmp
cp /etc/sudoers /etc/sudoers.old
visudo -c -f /tmp/sudoers.tmp &&  mv /tmp/sudoers.tmp /etc/sudoers

Aber zumindest ist es nicht so einfach.)

Wie ist Ihre Meinung? Welche Serverumgebung bevorzugen Sie für eine Serverumgebung, sudo oder su root?

schwach
quelle
Dies sollte ein Wiki sein, sonst wird es wahrscheinlich geschlossen, weil es viel zu subjektiv ist.
John Gardeniers
Ich denke nicht, dass es viel zu subjektiv ist. Genau wie die hervorragende Antwort von Raphink zeigt, wird in einer Umgebung mit mehreren Benutzern sudo bevorzugt.
schwächer
Ich denke nicht, dass es eine subjektive Frage ist. Es geht nicht darum, ob Sie Sudo mögen oder nicht, sondern ob es für die eine oder andere Verwendung geeignet ist.
inkaphink
Übrigens bin ich auch ein bisschen überrascht über Ihren visudo -cBefehl, da ich glaube, dass visudo -c -fSie eine bestimmte Datei überprüfen müssen.
inkaphink
@Raphink ja, du hast vollkommen recht. Ich habe meine Frage bearbeitet.
schwächer

Antworten:

16

Das Root-Konto ist auf Servern auf jeden Fall erforderlich, aber ich bevorzuge die Gewährung von Sudo-Rechten, insbesondere wenn sich mehrere Benutzer auf dem Computer befinden, und dies aus mehreren Gründen:

  • Ich verwende sudo nicht nur, um ALLE Rechte für ALLE Befehle zu erteilen, sondern auch, um bestimmten Befehlen als bestimmter Benutzer bestimmte Befehle zu erteilen.
  • Durch Zuweisen von Benutzern zu Funktionsgruppen kann ich ihre Rechte mit diesen Gruppen in Sudoern verwalten, anstatt Benutzer einzeln zu verwalten.
  • sudo-Zugriffe werden standardmäßig in auth.log protokolliert, einschließlich der Benutzer, die sudo zu welchem ​​Zeitpunkt verwendet haben.
  • Mit sudo können Sie die Konfiguration für mehrere Computer mit einer Datei verwalten.
  • Jeder Benutzer behält sein eigenes Kennwort, sodass das Root-Kennwort beim Verlassen des Benutzers nicht geändert werden muss.

In Bezug auf die Verwaltung mit Skripten unterstützen neue Versionen von sudo Einschlüsse, aber ich bevorzuge die Verwendung von Puppet- und Set-Klassen, die den Inhalt von sudoers verketten.

Puppet kann auch Augeas zugeordnet werden , um Ihre Sudoers-Datei zu verwalten.

ℝaphink
quelle
3
Tatsächlich habe ich nicht über einen Fall mit mehreren Benutzern nachgedacht. Sie haben Recht, sudo ist anscheinend ein Gewinner, wenn es mehrere Benutzer gibt. Aber für Einzelbenutzer halte ich su immer noch für ausreichend. PS Danke, dass du die Puppe erwähnt hast. Ich habe nur noch nie ein so süßes Werkzeug gesehen.
schwächer
Übrigens, wenn Sie Ihre Sudoers-Datei validieren möchten, bevor Sie sie mit Puppet bereitstellen, habe ich eine Validierungsfunktion zur Hand, die dies erledigt.
inkaphink
1
Wenn Sie sudo verwenden, muss root nicht einmal ein gültiges Passwort haben, da Sie sich nur auf die Passwörter der Benutzer verlassen müssen. Sie müssen nicht nur das Root-Passwort ändern, wenn jemand das Passwort verlässt, sondern auch ein Passwort weniger, das erraten / gebrochen / gehackt werden könnte.
Shannon Nelson
@ ShannonNelson Ich glaube, sie erwähnen den Root-Benutzer und das Passwort, da gemietete Server normalerweise mit diesen bereitgestellt werden.
AJP
1

Sie scheinen sich die Dinge schwer zu machen (wenn es darum geht, / etc / sudoers zu verwalten). Eine einfache

echo '%wheel    ALL=(ALL)   ALL' >> /etc/sudoers

würde genügen. Alles, was visudo tut, ist, die Datei gegen gleichzeitige Änderungen zu sperren und sicherzustellen, dass die Datei weiterhin korrekt analysiert wird.

rodjek
quelle
Ich benutze visudo -c, um die Datei zu überprüfen, falls etwas nicht stimmt. (Obwohl dies nicht der Fall sein sollte. Aber vielleicht vermisse ich beim Bearbeiten der Schrift ein Zeichen oder, schlimmer noch, ein nicht sichtbares Sonderzeichen.) Aber ich stimme zu, Ihre einzeilige Lösung ist ausreichend.
schwächer