Назад | Перейти на главную страницу

Побег а! в параметре пароля wget

Я пытаюсь выполнить что-то вроде этого:

wget --user=foo --password=bar! url

! в пароле вызывает проблемы. Я пытался избежать этого с помощью \, как в

--password=bar\!

Я пробовал заключать в одинарные и двойные кавычки. Я поместил пароль в отдельный файл и попробовал

--password =cat pass.txt

Каждый раз я получаю 403 Forbidden. Используя -d, я вижу, что квитирование SSL прошло успешно. В командной строке Windows команда работает. Я предполагаю, что мне нужно избежать! иначе, но я не знаю, как еще.

Попробуйте использовать кавычки:

--password="bar\!" или --password='bar\!'

В чем ошибка на стороне сервера?

Обновить: Я провел тест на своем компьютере с Ubuntu 10.4, на котором запущен Apache 2.2.14. wget --user=foo --password=bar! url работает для меня.

Если я использую неправильный пароль, я получаю сообщение об ошибке типа user foo: authentication failure for "/directorytest/": Password Mismatch.

Обновите снова: (Делая шаг назад)

Вы говорите, что это ошибка «клиент отклонен конфигурацией сервера». Я просмотрел исходный код Apache, и это сообщение об ошибке исходит от mod_authz_host. Это указывает на то, что ваша проблема не в пароле (который является аутентификацией), но ваш клиентский хост не авторизован для доступа к этому ресурсу Apache. mod_authz_host имеет дело с именами хостов и IP-адресами.

Выше вы говорите: «В командной строке Windows команда работает». Все ли ваши тесты выполняются из одной и той же клиентской системы? Вы запускаете wget в той же системе Windows? Что произойдет, если вы попытаетесь получить доступ к тому же URL-адресу с помощью IE или Firefox?

Больше обсуждения Вот и Вот.

Пытаться %21, который является значением в кодировке URL !.

Пытаться set +H чтобы отключить расширение истории Bash.

Редактировать:

Попробуйте установить password = STRING, http_password = STRING или ftp_password = STRING в твоем ~/.wgetrc файл или файл, на который указывает WGETRC переменная среды и опуская --password вариант из командной строки.

Не работают:

wget ftp://user:p!w@url.com/file

Ты можешь использовать:

wget ftp://user:p\!w@url.com/file

Обратите внимание на '\' перед '!'