Die Unterschiede zwischen Su, Sudo Su, Sudo -s und Sudo -i

Die Unterschiede zwischen Su, Sudo Su, Sudo -s und Sudo -i

⌛ Reading Time: 5 minutes

Es gibt viele verschiedene Möglichkeiten, eine Root-Sitzung im Linux-Terminal zu erhalten. Dies kann zu Verwirrung führen, da die meisten Anfänger, die Root-Rechte erlangen möchten, möglicherweise nicht wissen, wie jeder Befehl Root-Zugriff erlangen kann, wie sie sich unterscheiden und wann diese Unterschiede von Bedeutung sind. Hier nehmen wir jeden der vielen verschiedenen Befehle auseinander, die verwendet werden, um Root-Zugriff in einem Terminal zu erhalten, erklären, wie sie Root erhalten, wann sie verwendet werden und alles dazwischen.

su

Die su Der Befehl ersetzt den aktuellen Benutzer, den das System in der Shell verwendet.

Sie können zu jedem Benutzer wechseln, indem Sie tippen su und Hinzufügen eines Benutzernamens danach. Dadurch wird das System angewiesen, den aktuellen Benutzer zu dem angegebenen zu wechseln (und sich im Wesentlichen abzumelden). Alternativ kann die su Befehl kann Root-Zugriff erhalten, indem er eingibt su ohne nach dem Befehl etwas anzugeben.

„su“ wird am besten verwendet, wenn ein Benutzer direkten Zugriff auf das Root-Konto des Systems wünscht. Es geht nicht durch sudo oder so ähnlich. Stattdessen werden Sie aufgefordert, das Passwort des Root-Benutzers einzugeben, da Sie sich buchstäblich darin anmelden. Darüber hinaus haben andere Möglichkeiten, Root-Zugriff zu erlangen, nicht den Vorteil, auch Zugriff auf das Root-Home-Verzeichnis und die Root-Umgebung zu erhalten.

sudo su

Dieser Befehl fragt im Gegensatz zu root nach dem Passwort des aktuellen Benutzers.

Linuxsudo Sudosu

Es ist im Wesentlichen dasselbe wie nur Laufen su in der Schale, bis auf einen entscheidenden Unterschied. Anstatt dem System zu sagen, dass es direkt „Benutzer wechseln“ soll, weisen Sie es an, den Befehl „su“ als Root auszuführen. Wann sudo su ausgeführt wird, werden „.profile“, „.bashrc“ und „/etc/profile“ gestartet, ähnlich wie beim Ausführen su (oder su root). Wenn ein Befehl mit ausgeführt wird sudo davor erhält es Root-Rechte.

Obwohl es keine großen Unterschiede zwischen „sudo su“ und „su“ gibt, sudo su ist aus einem wichtigen Grund immer noch ein sehr nützlicher Befehl: Wenn ein Benutzer „su“ ausführt, um Root-Zugriff auf ein System zu erhalten, muss er das Root-Passwort kennen. Wurzel ist gegeben mit sudo su indem Sie das Passwort des aktuellen Benutzers anfordern. Dies ermöglicht es, ohne das Root-Passwort root zu werden, was die Sicherheit erhöht.

sudo -i

Verwenden von sudo -i ist praktisch das gleiche wie die sudo su Befehl mit einer Ausnahme: Er interagiert nicht direkt mit dem Root-Benutzer.

Linuxsudo Sudoi

Ähnlich wie sudo su, das -i Flag ermöglicht es einem Benutzer, eine Root-Umgebung zu erhalten, ohne das Passwort des Root-Kontos kennen zu müssen. sudo -i ist auch sehr ähnlich zu verwenden sudo su, da es alle Umgebungsdateien (.profile usw.) liest und die Umgebung in der Shell festlegt.

Der Unterschied zu „sudo su“ ist das sudo -i ist eine viel sauberere Möglichkeit, Root und eine Root-Umgebung zu erhalten, ohne direkt mit dem Root-Benutzer zu interagieren. Zur Verdeutlichung: Mit sudo su du verwendest mehr als eine Wurzel setuid Befehl im Hintergrund. Dies macht es viel schwieriger herauszufinden, welche Umgebungsvariablen beibehalten und welche geändert werden (beim Wechsel zur Root-Umgebung). Das stimmt nicht mit sudo -i. Aus diesem Grund sehen die meisten Leute es als die bevorzugte Methode an, um root zu werden, ohne sich direkt anzumelden.

sudo -s

Dieser Befehl ruft eine Shell mit Ihrer $SHELL-Variablen auf.

Linuxsudo Sudos

Die -s Schalter für den „sudo“-Befehl liest die $SHELL-Variable des aktuellen Benutzers, der Befehle ausführt. Dieser Befehl funktioniert so, als ob der Benutzer ausgeführt wird sudo /bin/bash. Sudo -s ist eine Shell im „Nicht-Login“-Stil. Im Gegensatz zu einem Befehl wie sudo -i oder sudo su, liest das System keine Umgebungsdateien. Wenn ein Benutzer der Shell sagt, dass sie laufen soll sudo -s, erhält es Root, ändert jedoch weder den Benutzer noch die Benutzerumgebung. Ihr Zuhause wird nicht das Stammhaus sein usw.

Linuxsudo Shellupdate

Dieser Befehl wird am besten verwendet, wenn der Benutzer nicht zu root wechseln möchte, sondern eine interaktive Shell mit seinem Umgebungswert $SHELL möchte. Andere Befehle, über die oben gesprochen wurde, erhalten Root-Zugriff, berühren jedoch Root-Umgebungsdateien und ermöglichen Benutzern einen vollständigen Zugriff auf Root (was ein Sicherheitsproblem darstellen kann).

Häufig gestellte Fragen

1. Welchen Befehl soll ich verwenden?

Jeder Befehl hat seinen Anwendungsfall. Hier ist es wichtig zu verstehen, was die einzelnen Befehle tun und wann sie verwendet werden. So wie es steht, sudo -i ist der praktischste und sauberste Weg, um eine Root-Umgebung zu erhalten. Auf der anderen Seite verwenden diejenigen, die sudo -s werden feststellen, dass sie eine Root-Shell erhalten können, ohne die Root-Umgebung berühren zu können, was zusätzliche Sicherheitsvorteile bietet.

2. Kann der Zugriff auf Root meinem System schaden?

In manchen Fällen ja. Wenn Sie nicht absolut sicher sind, dass Sie für alles in einer bestimmten Terminalsitzung auf root zugreifen müssen, ist es oft besser, einfach zu tippen sudo gefolgt von einem Befehl, wenn Sie für diesen bestimmten Befehl auf Root zugreifen möchten. Zum Beispiel tippen sudo apt install vlc in jeder Debian-basierten Version von Linux würde dem Betriebssystem sagen, dass es auf root zugreifen soll, nur um den APT-Paketmanager auszuführen, um VLC zu installieren.

Eine sehr wichtige Einschränkung beim Laufen sudo -i oder jede andere Variante, die wir zuvor besprochen haben, im Gegensatz zum Tippen sudo Vor jedem Befehl, den Sie als Root ausführen möchten, steht, dass ersterer Ihren Befehlsverlauf nicht protokolliert /var/log/auth.log. Wenn Sie es vermasseln, können Sie nicht zurückgehen und überprüfen, was Sie getan haben, um es zu korrigieren. Sie müssen nicht genügend Arbeitsspeicher haben, da Root-Sitzungen nicht aufgezeichnet werden.

3. Wenn ich „sudo“ vor einem Befehl eingebe, welche Variante von „sudo su“ führe ich aus?

Durch Eingabe von sudo Um einen Befehl auszuführen (dh Sie geben ihn in dieselbe Zeile wie den Befehl ein, den Sie ausführen möchten), führen Sie ihn im Wesentlichen unter einer interaktiven Root-Shell aus. Das wäre was sudo -s eigenständiger Befehl tut es.

Einpacken

Es gibt wirklich keinen Befehl auf dieser Liste, der zu 100 % der beste ist. Wenn sich die Benutzer mit der Befehlszeile vertraut machen, müssen sie jeden Weg zum Rooten (und es gibt viele) berücksichtigen, die Vor- und Nachteile abwägen und entsprechend handeln. Ich hoffe, dass Ihnen diese Entscheidungen mit Hilfe dieses Artikels leichter fallen. Wenn Sie mehr über Befehle erfahren möchten, lesen Sie diesen Artikel über nützliche Linux-Befehle, um den Inhalt eines Verzeichnisses aufzulisten.

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.