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

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.

es ist

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

Linuxsudo Su

Sie können zu jedem Benutzer wechseln, indem Sie su eingeben und danach einen Benutzernamen hinzufügen. Dadurch wird das System angewiesen, den aktuellen Benutzer zu dem angegebenen zu wechseln (und sich im Wesentlichen abzumelden). Alternativ kann der Befehl su Root-Zugriff erhalten, indem Sie su eingeben, 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 ähnliches. 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 das Ausführen von su in der Shell, 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. Wenn sudo su ausgeführt wird, werden „.profile“, „.bashrc“ und „/etc/profile“ gestartet, ähnlich wie beim Ausführen von su (oder su root). Wenn ein Befehl mit sudo davor ausgeführt wird, erhält er Root-Rechte.

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

sudo -i

Die Verwendung von sudo -i ist praktisch identisch mit dem Befehl sudo su, mit einer Ausnahme: Es interagiert nicht direkt mit dem Root-Benutzer.

Linuxsudo Sudoi

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

Der Unterschied zu „sudo su“ besteht darin, dass sudo -i ein viel saubererer Weg ist, Root und eine Root-Umgebung zu erlangen, ohne direkt mit dem Root-Benutzer zu interagieren. Zur Verdeutlichung: Mit sudo su verwenden Sie mehr als einen root-setuid-Befehl im Hintergrund. Dies macht es viel schwieriger herauszufinden, welche Umgebungsvariablen beibehalten und welche geändert werden (beim Wechsel zur Root-Umgebung). Dies ist bei sudo -i nicht der Fall. 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

Der Schalter -s für den Befehl „sudo“ liest die Variable $SHELL des aktuellen Benutzers, der Befehle ausführt. Dieser Befehl funktioniert so, als ob der Benutzer sudo /bin/bash ausführt. 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 die Shell anweist, sudo -s auszuführen, erhält sie 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 aussieht, ist sudo -i der praktischste und sauberste Weg, um eine Root-Umgebung zu erhalten. Auf der anderen Seite werden diejenigen, die sudo -s verwenden, 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 sudo gefolgt von einem Befehl einzugeben, wenn Sie für diesen bestimmten Befehl auf root zugreifen möchten. Wenn Sie beispielsweise sudo apt install vlc in einer Debian-basierten Version von Linux eingeben, wird das Betriebssystem angewiesen, auf root zuzugreifen, nur um den APT-Paketmanager auszuführen, um VLC zu installieren.

Eine sehr wichtige Einschränkung beim Ausführen von sudo -i oder einer anderen Variante, die wir zuvor besprochen haben, im Gegensatz zur Eingabe von sudo vor jedem Befehl, den Sie als Root ausführen möchten, besteht darin, dass erstere Ihren Befehlsverlauf nicht in /var/log/auth protokolliert. Protokoll. 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?

Indem Sie sudo eingeben, um einen Befehl auszuführen (dh Sie geben ihn in derselben Zeile ein wie den Befehl, den Sie ausführen möchten), führen Sie ihn im Wesentlichen unter einer interaktiven Root-Shell aus. Dies würde der eigenständige Befehl sudo -s tun.

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.

Ist dieser Artikel nützlich? ja Nein

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *