Curl с sudo возвращает соединение, отказано, но обычный curl работает нормально - PullRequest
0 голосов
/ 23 апреля 2019

Следующее выполняется нормально

curl https://packagecloud.io/install/repositories/github/git-lfs/config_file.list?os=Ubuntu\&dist=xenial\&source=script

Но если я запускаю его с sudo, оно возвращает ошибку:

curl: (7) Failed to connect to packagecloud.io port 443: Connection refused

Почему?

Примечание: я нахожусь за корпоративным прокси.

1 Ответ

2 голосов
/ 24 апреля 2019

curl читает переменные окружения <url scheme>_proxy (в данном случае https_proxy) или all_proxy, чтобы установить используемый прокси-сервер по умолчанию (как описано здесь ).Однако по умолчанию sudo выполняет команды в минимальной среде (настройка env_reset).

Эту функцию безопасности можно временно отключить, чтобы сохранить существующие переменные среды с помощью -E (--preserve-env).) опция командной строки.Отдельные переменные среды для белого списка могут быть указаны в виде списка через запятую:

sudo --preserve-env=https_proxy curl ...

Это можно сделать постоянным, используя параметр env_keep в файле sudoers .Например, чтобы сохранить все переменные среды, заканчивающиеся на _proxy для всех пользователей:

Defaults env_keep += "*_proxy"
...