Я пытаюсь выполнить что-то вроде этого:
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
Обратите внимание на '\' перед '!'