Sichere Verwendung von sudo in Linux für die Benutzerverwaltung

Sichere Verwendung von sudo in Linux für die Benutzerverwaltung

Linux ist im Allgemeinen sicherer als viele andere Betriebssysteme. Ein wesentlicher Teil dieser Sicherheit ergibt sich aus Benutzerverwaltung und Berechtigungen, die festlegen, wer was im System tun darf. Standardmäßig können normale Benutzer keine Operationen auf Systemebene durchführen.

Wenn ein normaler Benutzer Änderungen vornehmen muss, die das gesamte System betreffen, muss er entweder die su oder sudo Befehl, um vorübergehend administrative Rechte zu erhalten.

Verstehen Sie su und sudo?

Die folgende Erklärung basiert auf Ubuntu-basierte Distributionen, aber es gilt für die meisten gängigen Linux-Distributionen.

  • su (Ersatzbenutzer) – Mit diesem Befehl können Sie zu einem anderen Benutzerkonto wechseln, normalerweise dem Root-Konto. Um ihn zu benutzen, benötigen Sie das root-Passwort, was bedeutet, dass Sie dieses Passwort mit anderen teilen müssen, wenn diese ebenfalls Zugang benötigen, was als riskant angesehen wird.
  • sudo (superuser do) – Mit diesem Befehl kann ein Benutzer bestimmte Systembefehle mit administrativen Rechten ausführen, ohne das Root-Passwort mitzuteilen. Stattdessen geben die Benutzer ihr eigenes Passwort ein, was eine sicherere Delegation von Verantwortlichkeiten ermöglicht.

Beispiel:

# Using su to switch to root
su -
Password: [root password here]

# Using sudo to update packages
sudo apt update
[sudo] password for user: [your password here]

Wie Sie sehen können, sudo einen sichereren und flexibleren Weg zur Durchführung von Verwaltungsaufgaben im Vergleich zu su.

Was ist sudo?

sudo ist ein spezielles Programm (setuid binary), das es autorisierten Benutzern ermöglicht, Befehle als Root-Benutzer oder als ein anderer Benutzer auszuführen. Es bietet eine sichere Möglichkeit, administrative Aufgaben auszuführen, ohne das Root-Passwort weiterzugeben.

Wenn Sie sudoverwenden, müssen Sie Ihr eigenes Passwort eingeben, nicht das Root-Passwort, wodurch sichergestellt wird, dass jeder Befehl, den Sie ausführen, mit Ihrem Konto verknüpft ist.

Im folgenden Beispiel wird der Apache-Webserver mit Root-Rechten neu gestartet. Beachten Sie, dass der Benutzer niemals das Root-Passwort eingibt; stattdessen wird sein eigenes Passwort verwendet.

sudo systemctl restart apache2

Wer darf sudo verwenden?

Die Liste der Benutzer, die sudo ausführen können sudo wird in der Datei /etc/sudoers Datei, die mit der visudo Befehl bearbeitet werden kann, um Syntaxfehler zu vermeiden, die Ihr System zerstören können:

sudo visudo

Ein Standardeintrag sieht so aus, d.h. der Benutzer root kann jeden Befehl auf jedem Rechner als beliebiger Benutzer ausführen.

root ALL=(ALL:ALL) ALL

Sichere Verwendung von sudo in Linux für die Benutzerverwaltung

Gewährung von sudo-Zugriff für andere Benutzer

Uneingeschränkten Zugriff gewähren sudo Zugriff für mehrere Benutzer kann riskant sein. Wenn jeder Benutzer jeden Befehl als root ausführen kann, könnte ein einfacher Fehler oder ein kompromittiertes Konto das System zerstören oder sensible Daten preisgeben.

Gefährliches Beispiel (don’t do this):

adam ALL=(ALL:ALL) ALL
tom  ALL=(ALL:ALL) ALL

Hier, adam und tom können jeden Befehl als Root auf jedem Rechner ausführen, was ihnen ähnlich wie dem Root-Benutzer volle administrative Macht verleiht.

Gewähren Sie stattdessen nur die spezifischen Privilegien, die jeder Benutzer benötigt, wie unten erläutert.

Die sudo-Syntax verstehen

Eine richtig konfigurierte sudo ist sehr flexibel, und die Anzahl der Befehle, die ein Benutzer ausführen kann, lässt sich genau festlegen.

Die Syntax eines konfigurierten sudo Zeile lautet:

User_name Machine_name=(Effective_user) command

Diese Syntax kann in vier Teile unterteilt werden:

  • Benutzer_name → Name des sudo Benutzers.
  • Maschinen_name → Hostname, wobei der sudo gültig ist, was nützlich ist, wenn Sie mehrere Hosts haben.
  • effective_user → Der Benutzer, unter dem der Befehl ausgeführt wird (z. B. root oder ein anderes Konto).
  • Befehl → Der Befehl oder die Befehle, die dieser Benutzer ausführen darf.

Diese Struktur ermöglicht es Administratoren, genau zu kontrollieren, was jeder Benutzer tun kann, anstatt vollen Root-Zugriff zu gewähren.

Beispiel für sudo-Konfigurationen

Hier sind einige häufige Situationen und wie Sie konfigurieren können sudo für jede Situation:

1. Gewährung des vollen Datenbankzugriffs für einen bestimmten Benutzer

Sie haben einen Benutzer mark der ein Datenbank-Administrator, und Sie möchten, dass er vollen Zugriff auf die Datenbank-Server beta.database_server.com, aber keinen Zugang auf anderen Rechnern, sollte Ihre sudo-Zeile lauten:

mark beta.database_server.com=(ALL) ALL

2. Ausführen von Befehlen unter einem bestimmten Nicht-Root-Benutzer

Sie haben einen Benutzer tom der Systembefehle als ein bestimmter Benutzer ausführen soll (nicht root) auf demselben Datenbank-Server?

tom beta.database_server.com=(tom) ALL

3. Beschränkung eines Benutzers auf einen einzigen Befehl

Sie haben einen sudo-Benutzer cat der nur den folgenden Befehl ausführen darf dog.

cat beta.database_server.com=(cat) dog

4. Einem Benutzer erlauben, mehrere Befehle auszuführen

Ein Benutzer muss mehrere Befehle ausführen, aber die Liste ist kurz (weniger als 10 Befehle).

cat beta.database_server.com=(cat) /usr/bin/command1 /usr/sbin/command2 /usr/sbin/command3

Für längere Listen von Befehlen ist es besser, Aliase zu verwenden.

User_Alias ADMINS=tom,jerry,adam
User_Alias WEBMASTERS=henry,mark
WEBMASTERS WEBSERVERS=(www) APACHE
Cmnd_Alias PROC=/bin/kill,/bin/killall,/usr/bin/top

Sie können auch einer ganzen Gruppe Befehle zuweisen, indem Sie dem Gruppennamen den Zusatz %:

%apacheadmin WEBSERVERS=(www) APACHE

5. sudo ohne Passwort zulassen

Ein Benutzer muss bestimmte Befehle ausführen können, ohne ein Passwort einzugeben.

adam ALL=(ALL) NOPASSWD: PROCS

Hier wird der Benutzer adam alle Befehle ausführen, die unter PROCS ohne Eingabe eines Passworts ausführen.

Zusammenfassung

sudo bietet eine robuste und sichere Umgebung mit Flexibilität im Vergleich zu su. Außerdem, sudo ist die Konfiguration einfach. Einige Linux-Distributionen haben sudo standardmäßig aktiviert, während die meisten Distros heute verlangen, dass Sie es als Sicherheitsmaßnahme aktivieren.

Um einen Benutzer hinzuzufügen (bob) zu sudoführen Sie einfach den folgenden Befehl als root aus:

adduser bob sudo

Das war’s fürs Erste. Ich werde mit einem weiteren interessanten Artikel zurückkommen. Bis dahin, bleiben Sie dran und verbunden mit Tecmint. Don’t vergessen, uns mit Ihrem wertvollen Feedback im Kommentarbereich.

Share the Post:

Related Posts