Im Gegensatz zu dem, was ihre häufigste Verwendung vermuten lässt, su
und sudo
sind nicht nur zum Anmelden (oder Ausführen von Aktionen) als root gedacht.
su
ermöglicht es Ihnen, Ihre Identität mit der einer anderen Person auszutauschen. Aus diesem Grund, wenn Sie su
eingeben , muss das System überprüfen, ob Sie über die Anmeldeinformationen für den Zielbenutzer verfügen, zu dem Sie wechseln möchten.
sudo
ist etwas anders. Mit sudo
ermöglicht es Ihnen, bestimmte (oder alle, je nach Konfiguration) Befehle als jemand anderes auszuführen. Ihre eigene Identität wird verwendet, um zu bestimmen, welche Arten von Befehlen sudo
sind wird für Sie unter der Identität eines anderen ausgeführt:Wenn Sie ein vertrauenswürdiger Benutzer sind (in dem Sinne, dass der Systemadministrator Ihnen vertraut), haben Sie mehr freie Hand als beispielsweise ein Praktikant. Deshalb sudo
Ihre eigene Identität und nicht die des Zielbenutzers überprüfen muss.
Mit anderen Worten, versuchen Sie su
für jemanden, der Sie nicht sind, ist wie der Versuch, Ihre Einkäufe von einer gestohlenen Kreditkarte abzubuchen, während Sie sudo
verwenden ist wie das Auto Ihres Freundes durch einen gesetzlichen Vertreter zu verkaufen.
Was Sie versucht haben, nur sudo su root
, oder noch einfacher sudo su
und geben Sie Ihr reguläres Benutzerkennwort ein. Dies würde ungefähr darauf hinauslaufen, die Kreditkartenanmeldeinformationen Ihres Freundes durch Ihre eigenen zu ersetzen, indem Sie die gesetzliche Vollmacht verwenden, die sie Ihnen gegeben haben :). Es setzt natürlich den sudo
voraus -Konfiguration können Sie su
ausführen mit eskalierten Privilegien.
Auch Systeme, die mit sudo
vorkonfiguriert sind Zugriff haben normalerweise das Root-Konto deaktiviert (kein Root-Passwort), Sie können dies mit passwd
aktivieren Befehl, nachdem Sie über sudo su
root geworden sind .
Es ist konfigurierbar*, aber standardmäßig fragt "sudo" Sie nach Ihrem Passwort. Es versucht nur sicherzustellen, dass Sie es sind und nicht jemand, der Ihre Tastatur benutzt, während Sie sich Kaffee holen.
Im Gegensatz dazu fragt "su root" nach dem Root-Passwort.
*Wenn targetpw in /etc/sudoers falsch ist (Standard), fragt "sudo" Sie nach Ihrem Passwort. Wenn es wahr ist, dann fragt "sudo" Sie nach dem Passwort von root oder, wenn Sie einen anderen Benutzer mit der Option "-u" angegeben haben, nach dem Passwort dieses Benutzers.
sudo
wird verwendet, um Benutzerberechtigungen vorübergehend auf die Root-Ebene zu eskalieren, während su root
wird verwendet, um eine neue Shell mit root als Benutzer zu erstellen;