
curl
スクリプトを取得して実行するシェル スクリプトでは、これら 2 つのアプローチは実質的に異なりますか?
curl http://address-to-some-script/dosomething.sh | sudo tee /usr/bin/dosomething.sh
...対...
sudo curl http://address-to-some-script/dosomething.sh >> /usr/bin/dosomething.sh
sudo
2 番目のコマンドの直前の部分について、疑問に思う点があるのですcurl
が、それが最初のコマンドとどう違うのか (リスクが高いのか) を明確に説明できません。
答え1
重要な違いがいくつかあります。
curl http://address-to-some-script/dosomething.sh | sudo tee /usr/bin/dosomething.sh
curl
現在のユーザーとして、またroot として実行され、書き込む前にtee
の内容をクリアします。/usr/bin/dosomething.sh
sudo curl http://address-to-some-script/dosomething.sh >> /usr/bin/dosomething.sh
ルートとして実行されcurl
、現在のユーザーの権限で追加しようとします/usr/bin/dosomething.sh
(現在のシェルがリダイレクトを設定します)。