为什么要使用curl | sudo sh不建议?

时间:2015-04-01 04:14:24

标签: curl sudo

在我阅读introduction to the Rust programming language时,我遇到了安装方法,要求使用以下命令

curl -sf -L https://static.rust-lang.org/rustup.sh | sudo sh

请注意,这不是安装应用程序最受信任的方式。任何人都可以向我提供有关此命令如何危险的详细信息,是否有任何方法可以保护自己免受其影响?

2 个答案:

答案 0 :(得分:9)

因为您正在为正在执行的任何脚本提供root访问权限。它可以做各种令人讨厌的事情。

如果Rust网站遭到入侵,并且该脚本会出现一个无声安装恶意软件的小块,那么您将无法先知道该脚本。

答案 1 :(得分:7)

正如丹尼尔说的还有更多原因:

  • 如果脚本是通过HTTP而不是HTTPS提供给你的,那么Man In The Middle攻击可以由一些邪恶的第三方执行。使用HTTPS至少可以放心,脚本将从网站
  • 按原样下载
  • 如果连接在流中间关闭,则可能会执行部分命令,这些命令并非旨在(并且可能存在危险)。 (见第1个链接)
  • 您可能还认为在浏览器中打开脚本来检查它是否不是邪恶会降低风险。不幸的是,它不会,因为网站所有者可能会为浏览器用户代理显示不同的内容(请参阅第二个链接)

如何正确降低风险:

理想情况下:

  

在生产服务器上进行更改时使用此方法

curl -sf -L https://static.rust-lang.org/rustup.sh -o rustup.sh
less rustup.sh
chmod +x rustup.sh
sudo ./rustup.sh

明显更好,但不完美(但是单行):

  

您可以在开发机器/测试服务器上使用此方法

su -c "curl https://static.rust-lang.org/rustup.sh -o rustup.sh && chmod +x rustup.sh && ./rustup.sh"

参考文献: