
В сценарии оболочки, который curl
извлекает скрипт, а затем выполняет его, существенно ли различаются эти два подхода?
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
правой части 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
как root и пытается выполнить добавление /usr/bin/dosomething.sh
с правами текущего пользователя (текущая оболочка устанавливает перенаправление).