Esses comandos são materialmente ou apenas semanticamente diferentes?

Esses comandos são materialmente ou apenas semanticamente diferentes?

Em um script de shell usado curlpara buscar um script e depois executá-lo, essas duas abordagens são materialmente diferentes?

curl http://address-to-some-script/dosomething.sh | sudo tee /usr/bin/dosomething.sh

...vs...

sudo curl http://address-to-some-script/dosomething.sh >> /usr/bin/dosomething.sh

Há algo sobre o sudodireito antes curldo segundo comando que está me fazendo pensar, mas não consigo articular se ou como é diferente (mais arriscado?) Do primeiro.

Responder1

Existem várias diferenças materiais.

curl http://address-to-some-script/dosomething.sh | sudo tee /usr/bin/dosomething.sh

é executado curlcomo usuário atual e teecomo root; também limpa o conteúdo /usr/bin/dosomething.shantes de escrever nele.

sudo curl http://address-to-some-script/dosomething.sh >> /usr/bin/dosomething.sh

é executado curlcomo root e tenta anexar /usr/bin/dosomething.shas permissões do usuário atual (o shell atual configura o redirecionamento).

informação relacionada