CURL працює лише як root


0

Я перебуваю на установці Ubuntu 10.04 і якось згорнувшись перестав працювати з моїм користувачем. Я завжди отримую: curl: (7) не вдалося підключитися до хоста. Він працює лише як root. Хтось може мені допомогти?


1
Що з wget? Просто цікаво.
crazysim

wget, що спрацювало!
Кадафі

Це curlпсевдонім оболонки для одного з користувачів, чи у вас встановлено більше однієї версії, коли користувачі досягають різних версій через різні PATHналаштування (що це type curlговорить)?
Жиль

Я перевірив це, і для обох користувачів це curl є / usr / bin / curl.
Хадафі

У вас активні SELinux чи AppArmor?
Жиль

Відповіді:


1

Я перевірив протокол curl google.comстраз і ключовий рядок напевно 409:

connect(3, {sa_family=AF_INET, sin_port=htons(9999), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)

Якщо я (для тестування) запускаю curl http://localhost:1357, я потрапляю в напругу:

connect(3, {sa_family=AF_INET, sin_port=htons(1357), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)

Отже, з якоїсь дивної причини замість google.comзавивки намагається підключитися localhost:9999.

Чи можете ви публікувати:

  • /etc/hosts
  • /etc/nsswitch.conf
  • ~/.bashrc
  • /etc/host.conf
  • /etc/gai.conf
  • вихід ldd /usr/bin/curl
  • вихід env

Також вміст /etc/host.confта /etc/gai.conf(принаймні, якщо є рядки без коментарів).
Жиль

@Gilles: дякую, додав їх. я ніколи не бачив цих файлів ніде, тому вони пропустили моє око ...
whitequark

Дякуємо за вашу підказку з результатами env! Увімкнено мережевий проксі. Встановлено ALL_PROXY та all_proxy. Нарешті після відключення проксі все працює.
Кадафі

Я ніколи їх не бачив, але # Configuration for getaddrinfoвгорі /etc/gai.confпотрапив на око. І рядок 409 - це повторення 386, яке, імовірно, слід за getaddrinfoвикликом.
Жиль

1

Можливо, один користувач використовує проксі, а інший - ні. Дивіться , якщо або ваш користувач або корінь має http_proxyабо HTTP_PROXYзмінну середовища визначено.

Також перегляньте, чи є у root .curlrcфайл, який містить параметр, який змушує його працювати, чи ваш користувач має такий, .curlrcщо не працює.


змінна середовища не встановлена ​​як для користувача, так і для файлу .curlrc також не здається рішенням.
Кадафі

1

Я думаю, що, можливо, якась бібліотека, яка потребує згортання, тепер доступна лише корінцем з будь-якої причини. Кілька речей, які ви можете спробувати:

sudo apt-get purge curl libcurl3
sudo apt-get install curl

тоді, якщо це не виправить:

strace curl http://site.com/file.txt &> curl.log

і розмістити вихід на pastebin.com або щось для нас.


Перевстановлення не допомогло. Але ось висновок страз завитка google.com pastebin.com/bmFeK6Xn
khadafi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.