Website-Suche

Unterschied zwischen su und sudo und So konfigurieren Sie sudo unter Linux


Das Linux-System ist viel sicherer als alle seine Gegenstücke. Eine Möglichkeit, Sicherheit in Linux zu implementieren, sind Benutzerverwaltungsrichtlinien und Benutzerberechtigungen. Normale Benutzer sind nicht berechtigt, Systemvorgänge auszuführen.

Wenn ein normaler Benutzer systemweite Änderungen vornehmen muss, muss er entweder den Befehl „su“ oder „sudo“ verwenden.

HINWEIS – Dieser Artikel gilt eher für Ubuntu-basierte Distributionen, aber auch für die meisten gängigen Linux Verteilungen.

„su“ vs. „sudo“

su“ zwingt Sie dazu, Ihr Root-Passwort anderen Benutzern mitzuteilen, während „sudo“ die Ausführung ermöglicht Systembefehle ohne root-Passwort. Mit „sudo“ können Sie Ihr eigenes Passwort verwenden, um Systembefehle auszuführen, d. h. die Systemverantwortung ohne root-Passwort delegieren.

Was ist „sudo“?

sudo“ ist eine Root-Binärdatei setuid, die Root-Befehle im Namen autorisierter Benutzer ausführt und für deren Ausführung die Benutzer ihr eigenes Passwort eingeben müssen Systembefehl gefolgt von „sudo“.

Wer kann „sudo“ ausführen?

Wir können „/usr/sbin/visudo“ ausführen, um die Liste der Benutzer hinzuzufügen/zu entfernen, die „sudo“ ausführen können.

sudo /usr/sbin/visudo

Ein Screenshot der Datei „/usr/sbin/visudo“ sieht in etwa so aus:

Die sudo-Liste sieht standardmäßig wie die folgende Zeichenfolge aus:

root ALL=(ALL) ALL

Hinweis: Sie müssen root sein, um /usr/sbin/visudo zu bearbeiten Datei.

Sudo-Zugriff gewähren

In vielen Situationen findet der Systemadministrator, insbesondere ein Neuling auf diesem Gebiet, die Zeichenfolge „root ALL=(ALL) ALL als Vorlage und gewährt anderen, die möglicherweise darauf zugreifen, uneingeschränkten Zugriff möglicherweise sehr schädlich.

Das Bearbeiten der Datei „/usr/sbin/visudo“ in etwa dem folgenden Muster kann wirklich sehr gefährlich sein, es sei denn, Sie glauben allen aufgeführten Benutzern vollständig.

root ALL=(ALL) ALL
adam ALL=(ALL) ALL
tom ALL=(ALL) ALL
mark ALL=(ALL) ALL

Parameter von sudo

Ein richtig konfiguriertes ‘sudo‘ ist sehr flexibel und die Anzahl der auszuführenden Befehle kann präzise konfiguriert werden.

Die Syntax der konfigurierten „sudo“-Zeile lautet:

User_name Machine_name=(Effective_user) command

Die obige Syntax kann in vier Teile unterteilt werden:

  1. Benutzername: Dies ist der Name des „sudo“-Benutzers.
  2. Maschinenname: Dies ist der Hostname, in dem der Befehl „sudo“ gültig ist. Nützlich, wenn Sie viele Host-Rechner haben.
  3. (Effektiver_Benutzer): Der „effektive Benutzer“, der die Befehle ausführen darf. In dieser Spalte können Sie Benutzern die Ausführung von Systembefehlen ermöglichen.
  4. Befehl: Befehl oder eine Reihe von Befehlen, die der Benutzer ausführen kann.

Empfohlene Lektüre: 10 nützliche Sudoers-Konfigurationen zum Festlegen von „sudo“ unter Linux

Einige der Situationen und ihre entsprechende „sudo“-Zeile:

F1. Sie haben eine Benutzer-Markierung, die ein Datenbankadministrator ist. Sie sollten ihm ausschließlich Zugriff auf den Datenbankserver (beta.database_server.com) und nicht auf einem beliebigen Host gewähren.

Für die obige Situation kann die Zeile „sudo“ wie folgt geschrieben werden:

mark beta.database_server.com=(ALL) ALL

F2. Sie haben einen Benutzer „tom“, der als anderer Benutzer Systembefehle ausführen soll root auf demselben Datenbankserver wie oben erläutert.

Für die obige Situation kann die Zeile „sudo“ wie folgt geschrieben werden:

mark beta.database_server.com=(tom) ALL

F3. Sie haben einen Sudo-Benutzer „cat“, der den Befehl „“ ausführen soll Nur Hund.

Um die obige Situation umzusetzen, können wir „sudo“ wie folgt schreiben:

mark beta.database_server.com=(cat) dog

F4. Was passiert, wenn dem Benutzer mehrere Befehle gewährt werden müssen?

Wenn die Anzahl der Befehle, die der Benutzer ausführen soll, unter 10 liegt, können wir alle Befehle daneben platzieren, mit Leerzeichen dazwischen, wie unten gezeigt:

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

Wenn diese Befehlsliste in einem Bereich variiert, in dem es buchstäblich nicht möglich ist, jeden Befehl manuell einzugeben, müssen wir Aliase verwenden. Aliase! Ja, das Linux-Dienstprogramm, bei dem ein langer Befehl oder eine Befehlsliste als kleines und einfaches Schlüsselwort bezeichnet werden kann.

Einige alias-Beispiele, die anstelle des Eintrags in der Konfigurationsdatei „sudo“ verwendet werden können.

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

Es ist möglich, anstelle von Benutzern eine Systemgruppe anzugeben, die zu dieser Gruppe gehört, indem einfach „%“ wie folgt angehängt wird:

%apacheadmin WEBSERVERS=(www) APACHE

F5. Wie wäre es mit der Ausführung eines „sudo“-Befehls ohne Eingabe eines Passworts?

Wir können einen „sudo“-Befehl ausführen, ohne ein Passwort einzugeben, indem wir das Flag „NOPASSWD“ verwenden.

adam ALL=(ALL) NOPASSWD: PROCS

Hier kann der Benutzer „adam“ alle unter „PROCS genannten Befehle ausführen, ohne ein Passwort einzugeben.

Empfohlene Lektüre: Lassen Sie sich von Sudo beleidigen, wenn Sie ein falsches Passwort eingeben

sudo“ bietet Ihnen im Vergleich zu „su“ eine robuste und sichere Umgebung mit viel Flexibilität. Darüber hinaus ist die Konfiguration von „sudo“ einfach. Bei einigen Linux-Distributionen ist „sudo“ standardmäßig aktiviert, während Sie es bei den meisten heutigen Distributionen als Sicherheitsmaßnahme aktivieren müssen.

Um einen Benutzer (bob) zu sudo hinzuzufügen, führen Sie einfach den folgenden Befehl als Root aus.

adduser bob sudo

Das ist alles für den Moment. Ich werde mit einem weiteren interessanten Artikel wieder hier sein. Bleiben Sie bis dahin auf dem Laufenden und bleiben Sie mit Tecmint in Verbindung. Vergessen Sie nicht, uns Ihr wertvolles Feedback in unserem Kommentarbereich mitzuteilen.