Dieser Artikel untersucht die Unterschiede zwischen sudo
und su
Befehle unter Linux. Sie können sich auch dieses Video ansehen, um mehr über diese Befehle zu erfahren. Dauerhaft root werden mit su
ist ein bekanntes 'no-no' im *nix-Universum. Wieso den? Weil man mit su
root wird bedeutet, dass Sie root sind, was dasselbe ist, als würden Sie sich als root-Benutzer mit dem root-Passwort an einem Terminal anmelden. Und das ist aus vielen Gründen gefährlich.
[Das könnte Ihnen auch gefallen:Grundlagen der Linux-Befehlszeile:sudo ]
Als Root zu arbeiten bedeutet, dass Sie Folgendes tun können:
- Entfernen Sie einige oder alle Dateien
- Ändern Sie die Berechtigungen einiger oder aller Dateien
- Runlevel des Systems ändern
- Benutzerkonten ändern
- Dateisysteme mounten oder unmounten
- Software entfernen oder installieren
- Dateisysteme erstellen, entfernen und ändern
Grundsätzlich können Sie als Root-Benutzer alles mit dem System machen. Es ist das allmächtige Verwaltungskonto. Und im Gegensatz zu anderen, gesprächigeren Betriebssystemen sehen Sie kein "Sind Sie sicher?" Dialog, um sicherzustellen, dass der rm -rf *
Befehl, den Sie gerade ausgegeben haben, war in /opt/tmp
statt bei /
. Wie Sie sich vorstellen können, können Fehler, die als Root-Benutzer begangen werden, irreversibel und verheerend sein. Es gibt eine Alternative:sudo
.
sudo
sudo
, was ein Akronym für Superuser do oder Ersatzbenutzer do ist , ist ein Befehl, der eine Eingabeaufforderung mit erhöhten Rechten ausführt, ohne dass Sie Ihre Identität ändern müssen. Abhängig von Ihren Einstellungen in /etc/sudoers
-Datei können Sie einzelne Befehle als root oder als anderer Benutzer ausführen. Um weiterhin Befehle mit Root-Power auszuführen, müssen Sie immer den Befehl sudo verwenden. Wenn Sie beispielsweise Nginx installieren möchten Paket, Sie führen aus:
$ dnf install nginx
Aber Sie werden einen Fehler sehen, wenn Sie nicht root oder in der sudo-Gruppe sind. Wenn Sie stattdessen diesen Befehl ausführen:
$ sudo dnf install nginx
Sie werden aufgefordert, Ihr Passwort einzugeben, und können dann den Befehl ausführen, wenn Sie Teil der sudo-Gruppe sind.
Eine einfache Möglichkeit, als Root-Benutzer zu einer interaktiven Sitzung zu wechseln, ist die folgende:
$ sudo -i
Die Theorie hinter der Verwendung von sudo ist, dass die Ausgabe des sudo-Befehls vor jedem Befehl, den Sie ausführen, dazu führt, dass Sie mehr darüber nachdenken, was Sie tun, und hoffentlich weniger Fehler mit einem Konto machen, das unbegrenzte Macht besitzt.
so
su
, andererseits ist ein Akronym für Benutzer wechseln oder Benutzer ersetzen . Sie wechseln grundsätzlich zu einem bestimmten Benutzer und benötigen das Passwort für den Benutzer, zu dem Sie wechseln. Meistens ist das Benutzerkonto, zu dem Sie wechseln, das Root-Konto, aber es kann jedes Konto auf dem System sein.
Wenn Sie beispielsweise Folgendes eingeben:
$ su -
Im obigen Beispiel wechseln Sie zu root und benötigen das Root-Passwort. Die (-
) Switch stellt Ihnen die Umgebung von root (Pfad und Shell-Variablen) zur Verfügung, anstatt Ihnen einfach nur root-Benutzerrechte für einen einzelnen Befehl zu geben, während Sie Ihre eigene Umgebung behalten.
$ su bryant
Im zweiten Beispiel wechseln Sie zu bryant , und daher benötigen Sie das Passwort von Bryant, es sei denn, Sie sind root.
Wenn Sie zum Bryant wechseln möchten Benutzerkonto einschließlich Pfad und Umgebungsvariablen von Bryant verwenden Sie die Datei (-
) Schalter:
$ su - bryant
Die (-
) hat dieselbe Wirkung wie die direkte Anmeldung bei einem System mit diesem Benutzerkonto. Im Wesentlichen werden Sie dieser Benutzer.
Abschluss
Fassen Sie zusammen, was Sie gelernt haben.
sudo
lässt Sie Befehle als ein anderer Benutzer erteilen, ohne Ihre Identität zu ändern- Sie benötigen einen Eintrag in
/etc/sudoers
um diese eingeschränkten Berechtigungen auszuführen sudo -i
bringt Sie als Root zu einer interaktiven Sitzungsu
bedeutet, zu einem bestimmten Benutzer zu wechseln- Geben Sie einfach
su
ein wechselt zum Root-Benutzer sudo
wird nach Ihrem Passwort fragen, währendsu
fragt nach dem Passwort für den Benutzer, zu dem Sie wechseln
[ Möchten Sie mehr über Sicherheit erfahren? Sehen Sie sich die Checkliste für IT-Sicherheit und Compliance an. ]
Aber wann benutzt man das eine und nicht das andere? Da die sudo
Die Richtlinie ist in /etc/sudoers
definiert , kann dies zu leistungsstarken Berechtigungskontrollen führen. Seit sudo
kann so ziemlich alles, was su
kann kann, würde ich sagen, bleib am besten bei sudo
es sei denn, Sie arbeiten mit älteren Codes, die den su
erfordern Befehl.