logo

Linux-Sudo

Einführung

Der Linux-Befehl sudo steht für Super User Do . Im Allgemeinen wird es als Präfix einiger Befehle verwendet, die der Superuser ausführen darf.

Wenn wir den Befehl zusammen mit anderen Befehlen voranstellen, wird dieser Befehl mit hohen Privilegien ausgeführt. Mit anderen Worten, es ermöglicht dem Benutzer mit der entsprechenden Berechtigung, einen Befehl wie andere Benutzer wie der Superuser auszuführen.

Es entspricht der Option 'Als Administrator ausführen' unter Windows. Die Sudo-Option ermöglicht es uns, mehr als einen Administrator zu haben. Die Benutzer, die den Sudo-Befehl anwenden können, müssen den Eintrag in der Datei sudoers an der Position haben '/etc/sudoers/' .

Hinweis: Um die Datei anzuzeigen oder zu bearbeiten, müssen wir den Befehl sudo anwenden. Zum Bearbeiten der Datei wird empfohlen, den Befehl „visudo“ anzuwenden.

Der Befehl sudo erfordert standardmäßig, dass Benutzer sich zusammen mit einem Kennwort verifizieren, das das Kennwort des Benutzers und kein Root-Kennwort selbst ist.

Syntax des Sudo-Befehls

Die Syntax des Sudo-Befehls ist unten aufgeführt:

 sudo OPTION... COMMAND 

Option im Sudo-Befehl

Einige der wichtigen Optionen im Befehl sudo werden im Folgenden erläutert:

1 in: Es steht für Ausführung . Diese Option aktiviert den Sudo-Befehl zum Drucken der Versionsnummer und zum Beenden. Die Option -V gibt die Standardwerte aus. Es wurde eine Pause in der Sudo-Liste beobachtet, wenn der anfordernde Benutzer bereits der Root-Benutzer ist.

Linux-Sudo

2. -l: Es steht für Liste . Diese Option hilft beim Ausdrucken der verschiedenen Befehle, die dem Benutzer über den aktuellen Host gestattet sind.

Es zeigt, dass der aktuelle Benutzer jeden Befehl als sudo anwenden könnte.

Saira Banu-Schauspielerin
Linux-Sudo

3. -h oder -help: Das h steht für helfen in dieser Option. Diese Option aktiviert den Sudo-Befehl zum Drucken einer Nachricht über die Verwendung und das Beenden.

Linux-Sudo

4. -in: Es steht für bestätigen . Wenn der Befehl sudo den Zeitstempel des Benutzers aktualisieren würde, fordert die Validierung bei Bedarf zur Eingabe des Kennworts des Benutzers auf. Es verlängert das Sudo-Befehls-Timeout um die anderen 5 Minuten, führt jedoch keinen Befehl aus. Es liefert kein Ergebnis.

5. -k: Es steht für töten . Diese Option macht den Zeitstempel des Benutzers für sudo ungültig. Daher wäre bei der nächsten Ausführung des sudo-Befehls ein Passwort erforderlich. Die Option -k benötigt kein Passwort und wurde eingefügt, um den Benutzern zu ermöglichen, die Berechtigungen des Sudo-Befehls über zu widerrufen .Ausloggen Datei.

6. -b: Es steht für Hintergrund . Diese Option weist den sudo-Befehl an, die bereitgestellten Befehle im Hintergrund auszuführen.

Hinweis: Wenn wir diese Option anwenden, können wir keine Shell-Job-Steuerung zur Manipulation des Prozesses anwenden.

Linux-Sudo

7. -K: Diese Option ist mit der Option -k identisch. Es steht jedoch für sicher töten . Diese Option wird verwendet, um den Zeitstempel des Benutzers vollständig zu entfernen. Es ist ebenfalls kein Passwort erforderlich.

8. -p: Es steht für prompt . Mit dieser Option können wir die Passwortabfrage (Standard) überschreiben und eine benutzerdefinierte Passwortabfrage anwenden. Es sind einige Prozent Escapes zulässig, die wie folgt lauten:

  • %u wird zum Anmeldenamen des aufrufenden Benutzers entwickelt.
  • %U wird zum Anmeldenamen des Benutzers entwickelt
  • %h wird zum Hostnamen (lokal) ohne den Namen der Domäne entwickelt.
  • %H wird zum Hostnamen (lokal) mit dem Namen der Domäne entwickelt (nur wenn der Hostname der Maschine vollständig qualifiziert ist)
  • %% (zwei aufeinanderfolgende Zeichen) kann in ein einzelnes %-Zeichen aufgeteilt werden.
Linux-Sudo

9. -n: Mit dieser Option wird der Befehl ausgeführt, ohne nach dem Passwort zu fragen. Dies ist sehr nützlich, wenn wir einige Befehle als Hintergrundaufgaben (oder innerhalb des Shell-Skripts) ausführen möchten, wobei wir nicht möchten, dass der Befehl sudo nach dem Passwort fragt. Diese Option ist die Abkürzung für nicht interaktiv.

CSS erstes Kind

10. -in: Es steht für Benutzer . Diese Option ermöglicht es dem sudo-Befehl, die beschriebenen Befehle außer dem Root als Benutzer auszuführen. Zur Angabe von a uid Anstelle des Benutzernamens können wir auch den verwenden #uid .

11. -H: Es steht für HEIM . Mit dieser Option kann ein eingestellt werden HOME-Umgebungsvariable zu unserer Home-Verzeichnis des Root-Benutzers, wie in der passwd-Datei beschrieben. Der sudo-Befehl ändert HOME standardmäßig nicht.

12. -s: Es steht für die Hülse . Diese Option führt die durch a beschriebene Shell aus SHELL-Umgebungsvariable wenn es eingestellt ist oder diese Shell wie im Inneren beschrieben wird Passwort Datei.

13. -S: Es steht für stdin . Diese Option aktiviert den sudo-Befehl zum Lesen des Passworts über die Standardeingabe und nicht über das Endgerät.

14. -: Diese Option veranschaulicht, dass der Befehl sudo die Verarbeitung der Argumente der Befehlszeile beenden muss. Es ist am hilfreichsten in Verbindung mit einem -s-Flag.

15. -a: Es steht für Authentifizierungsart . Diese Option aktiviert den sudo-Befehl zur Verwendung des beschriebenen Authentifizierungstyps bei der Validierung eines Benutzers, sofern dies zulässig ist /etc/login/.config .

Der Administrator des Systems könnte die Liste der Methoden der Sudo-spezifischen Authentifizierung beschreiben, indem er Folgendes einschließt: 'auto-sudo' Eintrag innerhalb der /etc/login/.config .

Linux-Sudo

Umgebungsvariablen im sudo-Befehl

Im Folgenden sind einige der Umgebungsvariablen aufgeführt, die vom Befehl sudo angewendet werden:

Ja Nein. Etikett Beschreibung
1. EDITOR Es handelt sich um einen Standardeditor, der im -e-Modus (sudoedit) verwendet werden kann, wenn VISUAL nicht behoben ist.
2. HEIM Es wird im -H- oder -s-Modus auf das Homeverzeichnis des Benutzers (Ziel) gesetzt (oder wenn der Sudo-Befehl mit der Option gebildet wurde, d. h. -enable-shell-sets-home).
3. WEG Es wird auf den vernünftigen Wert gesetzt, wenn die Option, d. h. secure_path sudoers, festgelegt ist.
4. HÜLSE Es kann verwendet werden, um die Shell zu bestimmen, die mit der Option -s ausgeführt werden soll.
5. SUDO_COMMAND Es wird auf einen Befehl gesetzt, der vom Befehl sudo ausgeführt wird.
6. SUDO_PROMPT Es kann als Passwortabfrage verwendet werden (Standard).
7. SUDO_USER Es wird auf die Anmeldung des Benutzers festgelegt, der den Sudo-Befehl anfordert.
8. SUDO_UID Es wird auf die UID des Benutzers festgelegt, der den Sudo-Befehl anfordert.
9. SUDO_GID Es wird auf die GID des Benutzers festgelegt, der den Sudo-Befehl anfordert.
10. SÜD_PS1 PS1 wäre auf seinen Wert festgelegt, wenn dieser festgelegt wäre.
elf. BENUTZER Es wird auf den Benutzer festgelegt (root, es sei denn, die Option, d. h. -u, wird beschrieben).
12. VISUELL Es ist ein Standardeditor und wird im -e-Modus (sudoedit) verwendet.

Geschichte des Sudo-Befehls

Cliff Spencer und Robert Coggeshall schrieben das eigentliche Subsystem 1980 an der SUNY/Buffalo am Department of Computer Science. Robert Coggeshall nahm Sudo mit zur University of Colorado Boulder. Im Wesentlichen wurden die Funktionen und der Code zwischen 1986 und 1993 von den IT-Mitgliedern des College of Engineering und der Informatikabteilung der University of Colorado Boulder sowie der angewandten Wissenschaften mit Todd C. Miller geändert.

Öffentlich wird die neueste Version seit 1994 von Todd .C Miller (OpenBSD-Entwickler) verwaltet und seit 1999 unter der ISC-ähnlichen Lizenz geteilt.

np.concatenate

Thomas Claburn bezeichnete solche Unsicherheiten im November 2009 als übertrieben, als er darauf reagierte, dass Microsoft das Privileg sudo habe. Im engeren Sinne waren die Ansprüche auf eine bestimmte GUI und nicht auf den Sudo-Ansatz bezogen.

Design des Sudo-Befehls

Im Gegensatz zum su-Befehl können Benutzer bei Bedarf anstelle eines Superusers ihr Passwort an sudo übergeben. Es ermöglicht zugänglichen Benutzern die Ausübung qualifizierter Berechtigungen, ohne das Passwort des anderen Kontos geheim zu halten.

string.replaceall Java
  • Wenn die Konfigurationsdatei dem Benutzer Zugriff gewährt, fordert das System nach der Authentifizierung den beanspruchten Befehl an.
  • Der Befehl sudo behielt die Aufrufrechte des Benutzers für eine Kulanzzeit (normalerweise 5 Minuten) pro Pseudo-Terminal bei und ermöglichte es dem Benutzer, verschiedene aufeinanderfolgende Befehle als beanspruchter Benutzer auszuführen, ohne erneut ein Passwort eingeben zu müssen.
  • Der Befehl sudo kann als Überwachungs- und Sicherheitsfunktion so konfiguriert werden, dass er jede Befehlsausführung protokolliert.
  • Wenn ein Benutzer versucht, den Befehl sudo aufzurufen, ohne in der Konfigurationsdatei aufgeführt zu sein, wird diesem Benutzer eine Ausnahmedarstellung angezeigt, die ihm mitteilt, dass der Schuss aufgezeichnet wurde.
  • Ein Eintrag würde im System gespeichert und der Root-Benutzer per E-Mail informiert.

Konfiguration des Sudo-Befehls

Der /etc/sudoers Die Datei enthält die Benutzergruppen oder eine Liste von Benutzern mit der Berechtigung zum Ausführen einer Reihe von Befehlen und enthält gleichzeitig die Rechte eines Root-Benutzers oder eines anderen aufgelisteten Benutzers. Das Programm ist möglicherweise so konfiguriert, dass ein Kennwort erforderlich ist.

Auswirkung des Sudo-Befehls

In einigen Systemdistributionen hat der Befehl sudo die Verwendung (Standard) eines anderen Logins des Superusers für verschiedene Verwaltungsvorgänge ersetzt, vor allem in einigen MacOS- und Linux-Distributionen von Apple.

Es verhindert einige Exploits und ermöglicht außerdem eine sicherere Protokollierung der Admin-Befehle.

RBAC

Der Befehl sudo könnte für den Transit zwischen verschiedenen Rollentypen innerhalb der rollenbasierten Zugriffskontrolle in Zusammenarbeit mit SELinux verwendet werden.

Ähnliche Programme und Tools

Visudo ist ein Dienstprogramm der Befehlszeile, mit dem die Konfigurationsdatei von sudo ausfallsicher bearbeitet werden kann. Es führt Syntax- und Plausibilitätsprüfungen durch und verhindert außerdem mehr als eine gleichzeitige Bearbeitung sowie Sperren.

Das Runas-Programm ermöglicht die gleiche Leistung in Microsoft Windows; Derzeitige lange Befehlszeilen können jedoch nicht an ein untergeordnetes Element, Umgebungsvariablen oder Verzeichnisse übergeben werden.

Es unterstützt keine allgemeine Erhöhung, hilft aber dabei, das Kind wie jeden anderen Benutzer auszuführen. Für Windows werden ein echtes Sudo und Su hinzugefügt, mit denen alle diese Statusdetails übertragen und das Kind als anderer Benutzer oder mit erhöhten Rechten gestartet werden können Hamilton C-Schale .

Die GUI ist für sudo verfügbar ( gksudo (insbesondere), aber es ist in Debian veraltet und auch nicht mehr in Ubuntu. Verschiedene andere Arten von Benutzeroberflächen sind nicht direkt auf sudo ausgelegt, ermöglichen aber die gleiche (temporäre) Rechteerweiterung für administrative Zwecke wie Autorisierungsdienste von Mac OS X, Benutzerkontensteuerung in Microsoft Windows , Und pkexec innerhalb der Unix-ähnlichen Betriebssysteme .

Seit der Version 5.8 von OpenBSD (Oktober 2015) spenden ist verfügbar. Es wurde angegeben, den Befehl sudo innerhalb des Basissystems von OpenBSD zu ersetzen.

sein vs. Sudo

Wenn wir an ein klassischeres Linux-Setup gewöhnt sind, sind wir es gewohnt, den Befehl su zu verwenden, um Root-Rechte zu erlangen. Wir können auch den Befehl su ausgeben, um uns effektiv als Root anzumelden (das Zuhause des Roots wird zu unserem Zuhause).

Mit solchen Distributionen können wir uns auch als Routenbenutzer anmelden. Es ist jedoch keine gute Idee, sich als Root-Benutzer anzumelden. Wenn wir eine Distribution anwenden, die vom Befehl su abhängt und die Anmeldung als Root-Benutzer zulässt, melden Sie sich als unser Standardbenutzer und den Befehl su beim Root-Benutzer an.

Höchstwahrscheinlich werden wir feststellen, dass wir uns bei Sudo-basierten Distributionen nicht als Root-Benutzer anmelden können. Tatsächlich wurde in einigen Distributionen wie Ubuntu das Konto des Root-Benutzers deaktiviert.

Wir können uns nicht als Root-Benutzer anmelden und den Befehl su verwenden, um Root-Benutzer zu werden. Wir könnten diese Befehle mit dem Befehl sudo erteilen, um Administratorrechte zu erlangen.

Verwendung des Sudo-Befehls

Es gibt zwei verschiedene Möglichkeiten, Verwaltungsanwendungen unter Linux auszuführen. Entweder können wir den Superuser oder Root-Benutzer mit dem Befehl su ändern oder den Befehl sudo nutzen.

jsp

Wenn wir unsere Zeit am Terminal nutzen, ist sudo einer der wichtigen Befehle, die wir häufig verwenden. Die Verwendung des sudo-Befehls anstelle der Anmeldung als Root-Benutzer ist besser geschützt, da wir einem einzelnen Benutzer nur wenige Administratorrechte gewähren können, ohne dass dieser das Root-Passwort kennt.

Wie wir es implementieren, hängt davon ab, welche Distribution wir verwenden. Einige Distributionen erlauben dem Root-Benutzer (wie OpenSUSE, Red Hat , oder Fedora ), während einige nicht mögen (like Debian Und Ubuntu ).

Die Verwendung des Befehls sudo ist in seiner Grundform einfach. Zum Beispiel müssen wir dpkg ausführen, um eine Software zu installieren. Wenn wir nur das ausführen dpkg -i software.deb Wenn Sie als Standardbenutzer den Befehl ausführen, erhalten Sie eine Fehlermeldung, dass der Benutzer nicht über die Berechtigung zum Ausführen des Befehls verfügt.

Aus diesem Grund können Standardbenutzer standardmäßig keine verschiedenen Anwendungen über einen Linux-Computer installieren. Wenn wir eine Anwendung auf dem Linux-Rechner installieren möchten, benötigen wir die Rechte eines Superusers.

Wir werden stattdessen das ausführen sudo dpkg -i software.deb Befehl, damit wir die Installation erfolgreich durchführen können.

Installieren des Sudo-Befehls

Das Paket des Befehls sudo ist auf den meisten Linux-Distributionen vorinstalliert. Um zu bestätigen, dass das Paket auf unserem System installiert ist, müssen die folgenden Schritte ausgeführt werden:

  • Öffnen Sie zunächst unser Terminal.
  • Geben Sie sudo ein und klicken Sie auf die Eingabetaste.
  • Wenn das Sudo-Paket auf unserem System installiert ist, wird eine kurze Meldung angezeigt.
  • Andernfalls benachrichtigen wir Sie mit einer Meldung, z. B. „Sudo-Befehl nicht gefunden“.
  • Wenn das Paket nicht installiert ist, können wir es einfach installieren, indem wir den Paketmanager der Überverteilung anwenden.

Installieren Sie Sudo auf Fedora und CentOS

 $ yum install sudo 

Installieren Sie Sudo unter Debian und Ubuntu

 $ apt install sudo 

Linux-Sudo

Befehl zum Aktualisieren von sudo

Linux-Sudo