Der Hauptunterschied zwischen diesen Befehlen besteht darin, wie sie den Zugriff auf ihre Funktionen einschränken.
su
(was "Ersatzbenutzer" oder "Benutzer wechseln" bedeutet) - genau das bewirkt, dass eine andere Shell-Instanz mit den Berechtigungen des Zielbenutzers gestartet wird. Um sicherzustellen, dass Sie dazu berechtigt sind, werden Sie nach dem Kennwort des Zielbenutzers gefragt . Um root zu werden, müssen Sie das root-Passwort kennen. Wenn mehrere Benutzer auf Ihrem Computer Befehle als root ausführen müssen, müssen sie alle das root-Passwort kennen - beachten Sie, dass es dasselbe Passwort sein wird. Wenn Sie einem der Benutzer die Administratorrechte entziehen müssen, müssen Sie das root-Passwort ändern und es nur denjenigen Personen mitteilen, die den Zugang aufrechterhalten müssen - chaotisch.
sudo
(hmm ... was ist die Mnemonik? Super-User-DO?) ist völlig anders. Es verwendet eine Konfigurationsdatei (/ etc / sudoers), in der aufgeführt ist, welche Benutzer Rechte für bestimmte Aktionen haben (Befehle als root ausführen usw.). Beim Aufrufen werden Sie nach dem Kennwort des Benutzers gefragt, der sie gestartet hat - um sicherzustellen, dass die Person bei der Terminal ist wirklich derselbe "Joe", der in aufgeführt ist /etc/sudoers
. Um einer Person Administratorrechte zu entziehen, müssen Sie lediglich die Konfigurationsdatei bearbeiten (oder den Benutzer aus einer Gruppe entfernen, die in dieser Konfiguration aufgeführt ist). Dies führt zu einer wesentlich saubereren Verwaltung von Berechtigungen.
Infolgedessen hat der root
Benutzer in vielen Debian-basierten Systemen kein Kennwort festgelegt - dh es ist nicht möglich, sich direkt als root anzumelden.
Außerdem /etc/sudoers
ermöglicht es einige zusätzliche Optionen angeben - dh Benutzer X ist nur in der Lage zu laufen Programm Y usw.
Die häufig verwendete sudo su
Kombination funktioniert folgendermaßen: Zuerst werden sudo
Sie nach Ihrem Kennwort gefragt. Wenn Sie dazu berechtigt sind, rufen Sie den nächsten Befehl ( su
) als Superuser auf. Da von su
aufgerufen wird root
, müssen Sie das Kennwort des Zielbenutzers nicht eingeben. So sudo su
können Sie eine Shell als ein anderer Benutzer öffnen (einschließlich root), wenn Sie Superuser - Zugriff durch die erlaubt sind /etc/sudoers
Datei.
su user
sich von nicht vertrauenswürdigen Shells anzumelden, sondernsu - user
. Siehe unix.stackexchange.com/q/7013/8250