Я не думаю, что вы можете надежно использовать пользователя: синтаксис pass @ name там; wgetвместо этого имеет отдельные параметры командной строки, поэтому, вероятно, наивно анализирует строку после :номера порта.
geekosaur
Ответы:
198
Wget интерпретирует <pass>@serveraddressкак порт. Чтобы указать имя пользователя и пароль, используйте --userи --passwordпереключатели:
wget --user user --password pass http://example.com/
Укажите имя пользователя, пароль и пароль для получения файлов по FTP и HTTP. Эти параметры могут быть переопределены с помощью параметров
--ftp-userи --ftp-passwordдля подключений FTP и параметров --http-userи --http-passwordдля подключений HTTP.
Я предпочитаю --ask-passwordвариант, описанный в ответе Набиля Кадими. Он позволяет вам невидимо вводить пароль в другой строке и избегать его сохранения в истории вашей оболочки.
Кевин
8
@Kevin Вы можете избежать сохранения этого в истории оболочки, начав строку хотя бы с одного пробела (как показано Набилем ). Если пароль / ресурс чувствителен, вам следует больше беспокоиться о незашифрованном HTTP / FTP / любом другом соединении, чем о сохранении его на вашем диске.
Лекенштейн
Я согласен с тем, что проблема с незашифрованным паролем важнее в некоторых случаях, чем история оболочки, но ответ также полезен для безопасных протоколов. Кроме того, иногда вам ДЕЙСТВИТЕЛЬНО приходится беспокоиться о шпионах, которые имеют доступ к вашему компьютеру, а не о шпионах онлайн (которых не интересует контент, к которому вы обращаетесь или который вас не волнует). Ответ --ask-password, приведенный ниже, явно лучше для интерактивного использования, тогда как ответ --password здесь проще для автоматизации. Комментарий Ixgr о .wgetrc и chmod также интересен в некоторых случаях.
youen
Как я понимаю руководство, проход не интерпретируется как порт. "Вы также можете закодировать свое имя пользователя и пароль в URL: http://user:password@host/path" "- руководство
Тим
104
У вас есть 3 варианта, и здесь нет ни одного конкретного порядка, кроме чувства мужества:
Хотя это не отображается в истории, оно видно всем, кто выполняет команду ps, top, htop или аналогичную во время выполнения процесса.
4
@AbdennourTOUMI Зачем вам отключать проверки сертификатов, особенно если вы отправляете пароль с запросом? Это определенно не рекомендуется в целом. Что касается «сокрытия» пароля в журналах или / proc, то на странице wget есть дополнительная опция: «Чтобы пароли не были видны, сохраните их в .wgetrc или .netrc и убедитесь, что эти файлы защищены от другие пользователи с "chmod". "
lxgr
2
Если --ask-passwordнет в наличии или вы не хотите вводить пароль каждый раз, wget -i link.txtможете помочь, где link.txtсодержитсяftp://remote_user:SECRET@ftp.example.com/file.ext
tehnicaorg
3
Вы также можете сохранить имя пользователя и пароль в файле ~/.wgetrc
и изменить права доступа к этому файлу, чтобы его мог прочитать только ваш пользователь:
Файл ~/.wgetrc:
user=john
password=SEcrEt
... а потом
chmod 600 ~/.wgetrc
Обратите внимание, однако, что пользователь rootвсе еще может заглянуть в этот файл и прочитать пароль.
Чтобы предотвратить просмотр паролей, используйте --use-askpassили сохраните их в .wgetrcили .netrc, и обязательно защитите эти файлы от других пользователей "chmod". Если пароли действительно важны, не оставляйте их в этих файлах - отредактируйте файлы и удалите их после того, как Wget начал загрузку.
Вы можете предоставить учетные данные аутентификации через --user=USERNAMEи --password=PASSWORD; на основе man wget, команда может быть отменена с помощью --http-user=USERNAMEи --http-password=PASSWORDдля HTTP соединения и --ftp-use=USERNAMEи --ftp-password=PASSWORDдля FTP соединения.
Это не совсем верно: man wgetуказывает, что --user и --password являются допустимыми параметрами, которые могут быть переопределены --http-user или --ftp-password
wget
вместо этого имеет отдельные параметры командной строки, поэтому, вероятно, наивно анализирует строку после:
номера порта.Ответы:
Wget интерпретирует
<pass>@serveraddress
как порт. Чтобы указать имя пользователя и пароль, используйте--user
и--password
переключатели:От
man wget
:источник
--ask-password
вариант, описанный в ответе Набиля Кадими. Он позволяет вам невидимо вводить пароль в другой строке и избегать его сохранения в истории вашей оболочки.http://user:password@host/path
" "- руководствоУ вас есть 3 варианта, и здесь нет ни одного конкретного порядка, кроме чувства мужества:
1 / Пароль виден всем (используя команду
history
)Пароль также будет виден в ps, top, htop и аналогичных.
2 / Пароль виден всем, кто смотрит за вашими плечами
Обратите внимание на пробел перед командой, он не позволяет сохранить его в вашей истории.
Пароль также будет виден в ps, top, htop и аналогичных.
3 / Пароль не виден никому, включая вас
источник
--ask-password
нет в наличии или вы не хотите вводить пароль каждый раз,wget -i link.txt
можете помочь, гдеlink.txt
содержитсяftp://remote_user:SECRET@ftp.example.com/file.ext
Вы также можете сохранить имя пользователя и пароль в файле
~/.wgetrc
и изменить права доступа к этому файлу, чтобы его мог прочитать только ваш пользователь:Файл
~/.wgetrc
:... а потом
Обратите внимание, однако, что пользователь
root
все еще может заглянуть в этот файл и прочитать пароль.Из справочной страницы :
источник
Вы можете предоставить учетные данные аутентификации через
--user=USERNAME
и--password=PASSWORD
; на основеman wget
, команда может быть отменена с помощью--http-user=USERNAME
и--http-password=PASSWORD
для HTTP соединения и--ftp-use=USERNAME
и--ftp-password=PASSWORD
для FTP соединения.источник
Команду могли использовать
--http-user
и--http-password
вместо--user
и--password
. В случаеftp
запроса варианты--ftp-user
и--ftp-password
.источник
man wget
указывает, что --user и --password являются допустимыми параметрами, которые могут быть переопределены --http-user или --ftp-password