Saya tidak berpikir Anda dapat menggunakan pengguna dengan andal: pass sintaks @ nama di sana; wgetmemiliki opsi baris perintah yang terpisah untuk mereka, jadi mungkin secara naif mengurai string setelah :sebagai nomor port.
geekosaur
Jawaban:
198
Wget mengartikan <pass>@serveraddresssebagai port. Untuk menentukan nama pengguna dan kata sandi, gunakan --userdan --passwordaktifkan:
wget --user user --password pass http://example.com/
Tentukan nama pengguna dan kata sandi kata sandi untuk pengambilan file FTP dan HTTP. Parameter ini dapat diganti menggunakan
--ftp-userdan --ftp-passwordopsi untuk koneksi FTP dan --http-userdan --http-passwordopsi untuk koneksi HTTP.
Saya lebih suka --ask-passwordopsi yang dijelaskan oleh jawaban Nabil Kadimi. Ini membuat Anda memasukkan kata sandi tanpa terlihat di baris lain dan menghindari menyimpannya dalam riwayat shell Anda.
Kevin
8
@Kevin Anda dapat menghindari menyimpannya dalam riwayat shell dengan memulai baris dengan setidaknya satu ruang (seperti yang ditunjukkan oleh Nabil ). Jika kata sandi / sumber daya sensitif, maka Anda harus lebih khawatir tentang HTTP / FTP / koneksi apa pun yang tidak terenkripsi daripada menyimpannya di disk Anda.
Lekensteyn
Saya setuju bahwa masalah kata sandi yang tidak terenkripsi menjadi lebih penting dalam beberapa kasus daripada riwayat shell, tetapi jawabannya juga berguna untuk protokol aman. Juga, kadang-kadang Anda harus lebih khawatir tentang mata-mata yang memiliki akses ke komputer Anda daripada mata-mata online (yang tidak tertarik dengan konten yang Anda akses atau yang tidak Anda pedulikan). Jawaban --ask-password di bawah ini jelas lebih baik untuk penggunaan interaktif, sedangkan jawaban --password di sini lebih mudah untuk otomatisasi. Komentar oleh Ixgr tentang .wgetrc dan chmod juga menarik dalam beberapa kasus.
youen
Seperti yang saya mengerti manual, pass tidak diartikan sebagai port. "Anda juga dapat menyandikan nama pengguna dan kata sandi Anda dalam URL: http://user:password@host/path" "- manual
Tim
104
Anda memiliki 3 opsi dan di sini tidak ada urutan khusus selain nyali perasaan:
1 / Kata Sandi dapat dilihat oleh siapa saja (menggunakan perintah history)
Sementara itu tidak terlihat dalam sejarah, itu terlihat oleh semua yang melakukan perintah ps, top, htop atau serupa saat proses sedang berjalan.
4
@AbdennourTOUMI Mengapa Anda menonaktifkan pemeriksaan sertifikat, terutama jika Anda mengirim kata sandi dengan permintaan? Itu jelas tidak dianjurkan secara umum. Sejauh "menyembunyikan" kata sandi pada log atau / proc, wget manpage memberikan opsi tambahan: "Untuk mencegah kata sandi tidak terlihat, simpan di .wgetrc atau .netrc, dan pastikan untuk melindungi file-file tersebut dari pengguna lain dengan "chmod". "
lxgr
2
Jika --ask-passwordtidak tersedia atau Anda tidak ingin mengetikkan kata sandi setiap saat, wget -i link.txtdapat membantu, di mana link.txtberisiftp://remote_user:[email protected]/file.ext
tehnicaorg
3
Anda juga dapat menyimpan nama pengguna dan kata sandi dalam file ~/.wgetrc
dan mengubah izin file itu sehingga hanya pengguna Anda yang dapat membacanya:
File ~/.wgetrc:
user=john
password=SEcrEt
... lalu
chmod 600 ~/.wgetrc
Namun, perhatikan bahwa pengguna rootmasih dapat mengintip ke dalam file itu dan membaca kata sandi.
Agar kata sandi tidak terlihat, gunakan --use-askpassatau simpan di .wgetrcatau .netrc, dan pastikan untuk melindungi file-file itu dari pengguna lain "chmod". Jika kata sandi benar-benar penting, jangan biarkan mereka terbaring di file-file itu juga --- edit file dan hapus setelah Wget memulai unduhan.
Anda dapat memberikan kredensial otentikasi melalui --user=USERNAMEdan --password=PASSWORD; berdasarkan pada man wget, perintah dapat diganti menggunakan --http-user=USERNAMEdan --http-password=PASSWORDuntuk koneksi http dan --ftp-use=USERNAMEdan --ftp-password=PASSWORDuntuk koneksi ftp .
Ini tidak sepenuhnya benar: man wgetmenunjukkan bahwa --user dan --password adalah opsi yang valid, yang dapat diganti oleh --http-user atau --ftp-password
wget
memiliki opsi baris perintah yang terpisah untuk mereka, jadi mungkin secara naif mengurai string setelah:
sebagai nomor port.Jawaban:
Wget mengartikan
<pass>@serveraddress
sebagai port. Untuk menentukan nama pengguna dan kata sandi, gunakan--user
dan--password
aktifkan:Dari
man wget
:sumber
--ask-password
opsi yang dijelaskan oleh jawaban Nabil Kadimi. Ini membuat Anda memasukkan kata sandi tanpa terlihat di baris lain dan menghindari menyimpannya dalam riwayat shell Anda.http://user:password@host/path
" "- manualAnda memiliki 3 opsi dan di sini tidak ada urutan khusus selain nyali perasaan:
1 / Kata Sandi dapat dilihat oleh siapa saja (menggunakan perintah
history
)Kata sandi juga akan terlihat dalam ps, atas, htop, dan sejenisnya.
2 / Kata Sandi dapat dilihat oleh siapa saja yang melihat ke belakang bahu Anda
Perhatikan spasi putih sebelum perintah, mencegah menyimpannya ke riwayat Anda.
Kata sandi juga akan terlihat dalam ps, atas, htop, dan sejenisnya.
3 / Kata Sandi tidak terlihat oleh siapa pun termasuk Anda
sumber
--ask-password
tidak tersedia atau Anda tidak ingin mengetikkan kata sandi setiap saat,wget -i link.txt
dapat membantu, di manalink.txt
berisiftp://remote_user:[email protected]/file.ext
Anda juga dapat menyimpan nama pengguna dan kata sandi dalam file
~/.wgetrc
dan mengubah izin file itu sehingga hanya pengguna Anda yang dapat membacanya:File
~/.wgetrc
:... lalu
Namun, perhatikan bahwa pengguna
root
masih dapat mengintip ke dalam file itu dan membaca kata sandi.Dari halaman manual :
sumber
Anda dapat memberikan kredensial otentikasi melalui
--user=USERNAME
dan--password=PASSWORD
; berdasarkan padaman wget
, perintah dapat diganti menggunakan--http-user=USERNAME
dan--http-password=PASSWORD
untuk koneksi http dan--ftp-use=USERNAME
dan--ftp-password=PASSWORD
untuk koneksi ftp .sumber
Perintah bisa digunakan
--http-user
dan--http-password
bukannya--user
dan--password
. Dalam halftp
permintaan opsi adalah--ftp-user
dan--ftp-password
.sumber
man wget
menunjukkan bahwa --user dan --password adalah opsi yang valid, yang dapat diganti oleh --http-user atau --ftp-password