Почему sudo curl игнорирует настройки прокси-сервера?

$ echo $http_proxy http://my.proxy.com $ curl -v http://files.com/a.txt * About to connect() to proxy my.proxy.com # Correct downloading $ sudo echo $http_proxy http://my.proxy.com $sudo curl -v http://files.com/a.txt # Hanging. 

Последняя команда не использует прокси. Зачем?

 $su $curl -v http://files.com/a.txt 

Также работает правильно.

  • Sudo -k vs. sudo -K
  • Добавление строки в файл hosts, получение разрешения отклонено при использовании sudo - Mac
  • Как добавить в файл как sudo?
  • Потерянный sudo / su на примере Amazon EC2
  • Sudo с паролем в одной командной строке?
  • Сломанный sudo на веб-сервисах amazon ec2 linux centOS
  • Предварительно санкционируйте sudo? (Так что это можно запустить позже)
  • Команда TC через веб-страницу как sudo
  • 2 Solutions collect form web for “Почему sudo curl игнорирует настройки прокси-сервера?”

    Это не значит, что вы думаете:

     sudo echo $http_proxy 

    При этом $http_proxy расширяется оболочкой перед sudo , поэтому он выбирает вашу собственную среду.

    --login su (без - , -l или --login ) также сохраняет (большую часть) среду неповрежденной, поэтому настройки прокси-сервера унаследованы.

    sudo не сохраняет среду по умолчанию. Вы можете попробовать:

     sudo -E curl ... 

    (Чтобы сохранить всю среду, если вам разрешено это делать), или

     sudo http_proxy=$http_proxy curl ... 

    http_proxy только http_proxy (безопаснее).

    Укажите хост как:

    • Аргумент командной строки (-x)
    • В командной строке (команда var = moo)
    • Или экспортировать его в вашу среду
     $ curl http://icanhazip.com/ -x http://87-98-136-60.ovh.net:80 87.98.136.60 $ curl http://icanhazip.com/ 84.202.82.63 $ http_proxy=http://87-98-136-60.ovh.net:80 curl http://icanhazip.com/ 87.98.136.60 $ http_proxy=http://87-98-136-60.ovh.net:80; curl http://icanhazip.com/ 84.202.82.63 $ export http_proxy=http://87-98-136-60.ovh.net:80; curl http://icanhazip.com/ 87.98.136.60 $ http_proxy=http://87-98-136-60.ovh.net:80; sudo curl http://icanhazip.com/ 84.202.82.63 $ export http_proxy=http://87-98-136-60.ovh.net:80; sudo -E curl http://icanhazip.com/ 
    Давайте будем гением компьютера.