Nie sądzę, abyś mógł niezawodnie korzystać z tego użytkownika: podaj tam składnię @ name; wgetzamiast tego ma dla nich osobne opcje wiersza poleceń, więc prawdopodobnie naiwnie analizuje ciąg po :numerze portu.
geekozaur
Odpowiedzi:
198
Wget interpretuje <pass>@serveraddressjako port. Aby podać nazwę użytkownika i hasło, użyj przełączników --useri --password:
wget --user user --password pass http://example.com/
Określ nazwę użytkownika użytkownika i hasło hasło zarówno dla FTP i pobieranie plików HTTP. Parametry te można zastąpić za pomocą
opcji --ftp-useri --ftp-passworddla połączeń FTP --http-useroraz --http-passwordopcji i dla połączeń HTTP.
Wolę --ask-passwordopcję opisaną w odpowiedzi Nabila Kadimi. Wprowadza hasło niewidocznie w innym wierszu i pozwala uniknąć przechowywania go w historii powłoki.
Kevin
8
@Kevin Możesz uniknąć przechowywania go w historii powłoki, rozpoczynając linię co najmniej jedną spacją (jak pokazuje Nabil ). Jeśli hasło / zasób jest wrażliwy, powinieneś bardziej martwić się o niezaszyfrowane połączenie HTTP / FTP / cokolwiek innego niż przechowywanie go na dysku.
Lekensteyn,
Zgadzam się, że problem nieszyfrowanego hasła jest w niektórych przypadkach ważniejszy niż historia powłoki, ale odpowiedź jest również przydatna w przypadku bezpiecznych protokołów. Czasami też musisz martwić się bardziej o szpiegów, którzy mają dostęp do twojego komputera, niż szpiedzy online (którzy nie są zainteresowani treściami, do których uzyskujesz dostęp lub których nie obchodzi). Poniższa odpowiedź --ask-password jest wyraźnie lepsza do użytku interaktywnego, podczas gdy odpowiedź --password jest łatwiejsza dla automatyzacji. Komentarz Ixgr na temat .wgetrc i chmod jest również interesujący w niektórych przypadkach.
youen
Jak rozumiem instrukcję, hasło nie jest interpretowane jako port. „Możesz także zakodować swoją nazwę użytkownika i hasło w adresie URL: http://user:password@host/path” ”- ręcznie
Tim
104
Masz 3 opcje, a tutaj nie ma określonej kolejności poza poczuciem odwagi:
1 / Hasło jest widoczne dla każdego (za pomocą polecenia history)
Chociaż nie jest to widoczne w historii, jest widoczne dla wszystkich, którzy wykonują polecenie ps, top, htop lub podobne podczas działania procesu.
4
@AbdennourTOUMI Dlaczego miałbyś wyłączyć sprawdzanie certyfikatów, szczególnie jeśli wysyłasz hasło wraz z żądaniem? Zasadniczo nie jest to zalecane. Jeśli chodzi o „ukrywanie” hasła w logach lub / proc, strona wget daje dodatkową opcję: „Aby zapobiec wyświetlaniu haseł, przechowuj je w .wgetrc lub .netrc i upewnij się, że chronisz te pliki przed inni użytkownicy z „chmod”. ”
lxgr
2
Jeśli --ask-passwordnie jest dostępny lub nie chcesz wpisywać hasła za każdym razem, wget -i link.txtmoże pomóc, gdzie link.txtzawieraftp://remote_user:[email protected]/file.ext
tehnicaorg
3
Możesz także zapisać nazwę użytkownika i hasło w pliku ~/.wgetrc
oraz zmienić uprawnienia do tego pliku, aby tylko użytkownik mógł go odczytać:
Plik ~/.wgetrc:
user=john
password=SEcrEt
... i wtedy
chmod 600 ~/.wgetrc
Pamiętaj jednak, że użytkownik rootnadal może zajrzeć do tego pliku i odczytać hasło.
Aby zapobiec wyświetlaniu haseł, użyj --use-askpasslub przechowuj je w .wgetrclub .netrci upewnij się, że chronisz te pliki przed innymi użytkownikami "chmod". Jeśli hasła są naprawdę ważne, nie zostawiaj ich również w tych plikach --- edytuj pliki i usuń je po rozpoczęciu pobierania przez Wget.
Możesz podać dane uwierzytelniające za pośrednictwem --user=USERNAMEi --password=PASSWORD; na podstawie man wgetpolecenia można zastąpić za pomocą połączenia --http-user=USERNAMEi --http-password=PASSWORDdla połączenia http oraz połączenia --ftp-use=USERNAMEi --ftp-password=PASSWORDdla ftp .
Komenda mogła zostać użyta, --http-usera --http-passwordzamiast --useri --password. W przypadku ftpżądania dostępne są opcje --ftp-useri --ftp-password.
Nie jest to całkowicie poprawne: man wgetwskazuje, że --user i --password są prawidłowymi opcjami, które mogą zostać zastąpione przez --http-user lub --ftp-password
wget
zamiast tego ma dla nich osobne opcje wiersza poleceń, więc prawdopodobnie naiwnie analizuje ciąg po:
numerze portu.Odpowiedzi:
Wget interpretuje
<pass>@serveraddress
jako port. Aby podać nazwę użytkownika i hasło, użyj przełączników--user
i--password
:Od
man wget
:źródło
--ask-password
opcję opisaną w odpowiedzi Nabila Kadimi. Wprowadza hasło niewidocznie w innym wierszu i pozwala uniknąć przechowywania go w historii powłoki.http://user:password@host/path
” ”- ręcznieMasz 3 opcje, a tutaj nie ma określonej kolejności poza poczuciem odwagi:
1 / Hasło jest widoczne dla każdego (za pomocą polecenia
history
)Hasło będzie również widoczne w ps, top, htop i podobnych.
2 / Hasło jest widoczne dla każdego, kto patrzy za siebie
Zwróć uwagę na biały znak przed poleceniem, ponieważ zapobiega zapisaniu go w twojej historii.
Hasło będzie również widoczne w ps, top, htop i podobnych.
3 / Hasło nie jest widoczne dla nikogo, w tym ciebie
źródło
--ask-password
nie jest dostępny lub nie chcesz wpisywać hasła za każdym razem,wget -i link.txt
może pomóc, gdzielink.txt
zawieraftp://remote_user:[email protected]/file.ext
Możesz także zapisać nazwę użytkownika i hasło w pliku
~/.wgetrc
oraz zmienić uprawnienia do tego pliku, aby tylko użytkownik mógł go odczytać:Plik
~/.wgetrc
:... i wtedy
Pamiętaj jednak, że użytkownik
root
nadal może zajrzeć do tego pliku i odczytać hasło.Z strony podręcznika :
źródło
Możesz podać dane uwierzytelniające za pośrednictwem
--user=USERNAME
i--password=PASSWORD
; na podstawieman wget
polecenia można zastąpić za pomocą połączenia--http-user=USERNAME
i--http-password=PASSWORD
dla połączenia http oraz połączenia--ftp-use=USERNAME
i--ftp-password=PASSWORD
dla ftp .źródło
Komenda mogła zostać użyta,
--http-user
a--http-password
zamiast--user
i--password
. W przypadkuftp
żądania dostępne są opcje--ftp-user
i--ftp-password
.źródło
man wget
wskazuje, że --user i --password są prawidłowymi opcjami, które mogą zostać zastąpione przez --http-user lub --ftp-password