Was ist der Unterschied zwischen den beiden Befehlen? Welcher ist besser, um einen anderen Benutzer zu emulieren, wenn man etwas als dieser Benutzer tun möchte?
sudo -H -iu USER command
Und
su -l USER -c command
Antwort1
Wenn Sie versuchen, einen Befehl als ein anderer Benutzer auszuführen, sudo
werden Sie nach Ihrem Kennwort und su
nach dem Kennwort des anderen Benutzers gefragt.
Sudo ist so konzipiert, dass nicht privilegierte Benutzer bestimmte Befehle als andere Benutzer ausführen können. Daher verfügt es über eine Konfigurationsdatei /etc/sudoers
, mit der Systemadministratoren entscheiden können, welche Benutzer welche Befehle als welche anderen Benutzer ausführen können. IE verfügt über fein abgestufte Berechtigungen. Diese Berechtigungen können erteilt und später widerrufen werden.
Su ermöglicht Ihnen auch, einen Befehl als anderer Benutzer auszuführen, verfügt aber nicht über die gleichen fein abgestuften Berechtigungen. Wenn Sie das Passwort des anderen Benutzers haben, können Sie als dieser Benutzer alles tun. Die einzige Möglichkeit, diesen Zugriff zu widerrufen, besteht darin, das Passwort des anderen Benutzers zu ändern.
Meinungsalarm
Im Allgemeinen würde ich für die meisten Dinge sudo
not verwenden su
. Es ist einfacher, jemandem ein wenig Zugriff zu gewähren, als ihm einfach die Schlüssel zu allem (Ihr Passwort) zu geben.
Meinung beenden
Es gibt keinen großen Unterschied in der Wirkung, wenn Sie versuchen, einen anderen Benutzer zu „simulieren“. Beide führen Ihren Befehl als dieser Benutzer aus.