No creo que pueda usar de manera confiable al usuario: pase la sintaxis de nombre allí; wgettiene opciones de línea de comando separadas para ellos, por lo que probablemente esté analizando ingenuamente la cadena después del :número de puerto.
geekosaur
Respuestas:
198
Wget interpreta <pass>@serveraddresscomo puerto. Para especificar un nombre de usuario y contraseña, use los interruptores --usery --password:
wget --user user --password pass http://example.com/
Especifique el nombre de usuario y la contraseña para recuperar archivos FTP y HTTP. Estos parámetros se pueden anular utilizando las
opciones --ftp-usery --ftp-passwordpara las conexiones FTP y las opciones --http-usery --http-passwordpara las conexiones HTTP.
Prefiero la --ask-passwordopción descrita por la respuesta de Nabil Kadimi. Te permite ingresar la contraseña de forma invisible en otra línea y evita almacenarla en tu historial de shell.
Kevin
8
@Kevin Puede evitar almacenarlo en el historial de shell iniciando la línea con al menos un espacio (como lo muestra Nabil ). Si la contraseña / recurso es confidencial, entonces debería preocuparse más por la conexión HTTP / FTP sin cifrar / cualquier conexión que almacenarla en su disco.
Lekensteyn
Estoy de acuerdo con que el problema de la contraseña no cifrada sea más importante en algunos casos que el historial de shell, pero la respuesta también es útil para protocolos seguros. Además, a veces DEBE preocuparse más por los espías que tienen acceso a su computadora que por los espías en línea (que no están interesados en el contenido al que está accediendo o por el que no le importa). La respuesta --ask-password a continuación es claramente mejor para el uso interactivo, mientras que la respuesta --password aquí es más fácil para la automatización. El comentario de Ixgr sobre .wgetrc y chmod también es interesante en algunos casos.
youen
Según entiendo el manual, pass no se interpreta como puerto. "También puede codificar su nombre de usuario y contraseña dentro de una URL: http://user:password@host/path" "- manual
Tim
104
Tiene 3 opciones y aquí no hay un orden específico que no sea la agallas:
1 / La contraseña es visible para cualquiera (usando el comando history)
Si bien no es visible en el historial, es visible para todos los que realizan un comando ps, top, htop o similar mientras se ejecuta el proceso.
44
@AbdennourTOUMI ¿Por qué deshabilitaría las comprobaciones de certificados, especialmente si envía una contraseña con la solicitud? Eso definitivamente no es aconsejable en general. En cuanto a "ocultar" la contraseña en los registros o / proc, la página de manual de wget ofrece una opción adicional: "Para evitar que se vean las contraseñas, guárdelas en .wgetrc o .netrc, y asegúrese de proteger esos archivos de otros usuarios con "chmod". "
lxgr
2
Si --ask-passwordno está disponible o si no desea escribir la contraseña cada vez, wget -i link.txtpuede ayudar, donde link.txtcontieneftp://remote_user:[email protected]/file.ext
tehnicaorg
3
También puede almacenar el nombre de usuario y la contraseña en el archivo ~/.wgetrc
y cambiar los permisos de ese archivo para que solo su usuario pueda leerlo:
Archivo ~/.wgetrc:
user=john
password=SEcrEt
... y entonces
chmod 600 ~/.wgetrc
Tenga en cuenta, sin embargo, que el usuario rootaún puede mirar ese archivo y leer la contraseña.
Para evitar que se vean las contraseñas, úselas --use-askpasso guárdelas en .wgetrco .netrc, y asegúrese de proteger esos archivos de otros usuarios con "chmod". Si las contraseñas son realmente importantes, tampoco las deje en esos archivos: edite los archivos y elimínelos después de que Wget haya comenzado la descarga.
Puede proporcionar credenciales de autenticación a través de --user=USERNAMEy --password=PASSWORD; basado en man wget, el comando se puede anular utilizando --http-user=USERNAMEy --http-password=PASSWORDpara la conexión http y la --ftp-use=USERNAMEy --ftp-password=PASSWORDpara la conexión ftp .
El comando podría haber usado --http-usery en --http-passwordlugar de --usery --password. En caso de ftpsolicitud, las opciones son --ftp-usery --ftp-password.
wget
tiene opciones de línea de comando separadas para ellos, por lo que probablemente esté analizando ingenuamente la cadena después del:
número de puerto.Respuestas:
Wget interpreta
<pass>@serveraddress
como puerto. Para especificar un nombre de usuario y contraseña, use los interruptores--user
y--password
:De
man wget
:fuente
--ask-password
opción descrita por la respuesta de Nabil Kadimi. Te permite ingresar la contraseña de forma invisible en otra línea y evita almacenarla en tu historial de shell.http://user:password@host/path
" "- manualTiene 3 opciones y aquí no hay un orden específico que no sea la agallas:
1 / La contraseña es visible para cualquiera (usando el comando
history
)La contraseña también será visible en ps, top, htop y similares.
2 / La contraseña es visible para cualquiera que mire detrás de tus hombros
Observe el espacio en blanco antes del comando, evita guardarlo en su historial.
La contraseña también será visible en ps, top, htop y similares.
3 / La contraseña no está visible para nadie, incluido usted
fuente
--ask-password
no está disponible o si no desea escribir la contraseña cada vez,wget -i link.txt
puede ayudar, dondelink.txt
contieneftp://remote_user:[email protected]/file.ext
También puede almacenar el nombre de usuario y la contraseña en el archivo
~/.wgetrc
y cambiar los permisos de ese archivo para que solo su usuario pueda leerlo:Archivo
~/.wgetrc
:... y entonces
Tenga en cuenta, sin embargo, que el usuario
root
aún puede mirar ese archivo y leer la contraseña.Desde la página del manual :
fuente
Puede proporcionar credenciales de autenticación a través de
--user=USERNAME
y--password=PASSWORD
; basado enman wget
, el comando se puede anular utilizando--http-user=USERNAME
y--http-password=PASSWORD
para la conexión http y la--ftp-use=USERNAME
y--ftp-password=PASSWORD
para la conexión ftp .fuente
El comando podría haber usado
--http-user
y en--http-password
lugar de--user
y--password
. En caso deftp
solicitud, las opciones son--ftp-user
y--ftp-password
.fuente
man wget
indica que --user y --password son opciones válidas, que pueden ser anuladas por --http-user o --ftp-password