
Unterscheiden sich diese beiden Ansätze in einem Shell-Skript, das curl
zum Abrufen und anschließenden Ausführen eines Skripts verwendet wird, wesentlich?
curl http://address-to-some-script/dosomething.sh | sudo tee /usr/bin/dosomething.sh
...gegen...
sudo curl http://address-to-some-script/dosomething.sh >> /usr/bin/dosomething.sh
Irgendetwas an dem „ sudo
Rechts davor“ curl
im zweiten Befehl gibt mir zu denken, aber ich kann nicht klar sagen, ob und wie es sich vom ersten (riskanter?) unterscheidet.
Antwort1
Es gibt eine Reihe wesentlicher Unterschiede.
curl http://address-to-some-script/dosomething.sh | sudo tee /usr/bin/dosomething.sh
curl
wird als aktueller Benutzer und als Root ausgeführt tee
; außerdem wird der Inhalt gelöscht, /usr/bin/dosomething.sh
bevor darauf geschrieben wird.
sudo curl http://address-to-some-script/dosomething.sh >> /usr/bin/dosomething.sh
wird als Root ausgeführt und versucht , mit den Berechtigungen des aktuellen Benutzers curl
anzufügen (die aktuelle Shell richtet die Umleitung ein)./usr/bin/dosomething.sh