Je ne pense pas que vous puissiez utiliser de manière fiable l'utilisateur: syntaxe pass @ name here; wgetA la place, les options de ligne de commande sont séparées pour celles-ci, aussi analyse-t-il probablement naïvement la chaîne après le :comme numéro de port.
geekosaur
Réponses:
198
Wget interprète <pass>@serveraddresscomme un port. Pour spécifier un nom d'utilisateur et un mot de passe, utilisez les commutateurs --useret --password:
wget --user user --password pass http://example.com/
Spécifiez le nom d' utilisateur utilisateur et le mot de passe mot de passe pour la récupération des fichiers FTP et HTTP. Ces paramètres peuvent être remplacés à l'aide des
options --ftp-useret --ftp-passwordpour les connexions FTP et des options --http-useret --http-passwordpour les connexions HTTP.
Je préfère l' --ask-passwordoption décrite dans la réponse de Nabil Kadimi. Il vous fait entrer le mot de passe de manière invisible sur une autre ligne et évite de le stocker dans l'historique de votre shell.
Kevin
8
@ Kevin Vous pouvez éviter de le stocker dans l'historique du shell en démarrant la ligne avec au moins un espace (comme le montre Nabil ). Si le mot de passe / la ressource est sensible, vous devriez vous préoccuper davantage de la connexion HTTP / FTP / non chiffrée / de toute connexion que de la stocker sur votre disque.
Lekensteyn
J'accepte le fait que le problème du mot de passe non chiffré est parfois plus important que l'historique du shell, mais la réponse est également utile pour les protocoles sécurisés. De plus, vous devez parfois vous soucier davantage des espions qui ont accès à votre ordinateur que des espions en ligne (qui ne sont pas intéressés par le contenu auquel vous accédez ou dont vous vous moquez). La réponse --ask-password ci-dessous est nettement meilleure pour une utilisation interactive, tandis que la réponse --password est plus facile à automatiser. Le commentaire de Ixgr sur .wgetrc et chmod est également intéressant dans certains cas.
Youen
Si j'ai bien compris le manuel, pass n'est pas interprété comme un port. "Vous pouvez également encoder votre nom d'utilisateur et votre mot de passe dans une URL: http://user:password@host/path" "- manuel
Tim
104
Vous avez 3 options et ici il n'y a pas d'ordre spécifique autre que le courage de sentir:
1 / Le mot de passe est visible par tout le monde (en utilisant la commande history)
Bien que cela ne soit pas visible dans l'historique, il est visible par tous ceux qui exécutent une commande ps, top, htop ou similaire pendant l'exécution du processus.
4
@AbdennourTOUMI Pourquoi désactivez-vous les vérifications de certificats, en particulier si vous envoyez un mot de passe avec la demande? Ce n'est certainement pas conseillé en général. En ce qui concerne le "masquage" du mot de passe dans les journaux ou dans / proc, la page de manuel wget offre une option supplémentaire: "Pour empêcher la visualisation des mots de passe, stockez-les dans .wgetrc ou .netrc et veillez à protéger ces fichiers de autres utilisateurs avec "chmod". "
Lxgr
2
Si --ask-passwordn'est pas disponible ou si vous ne voulez pas taper le mot de passe à chaque fois, wget -i link.txtpeut vous aider, où link.txtcontientftp://remote_user:[email protected]/file.ext
tehnicaorg
3
Vous pouvez également stocker le nom d'utilisateur et le mot de passe dans le fichier ~/.wgetrc
et modifier les autorisations de ce fichier afin que seul votre utilisateur puisse le lire:
Fichier ~/.wgetrc:
user=john
password=SEcrEt
... puis
chmod 600 ~/.wgetrc
Notez cependant que cet utilisateur rootpeut toujours consulter ce fichier et lire le mot de passe.
Pour empêcher la lecture des mots de passe, utilisez-les --use-askpassou stockez-les dans .wgetrcou .netrc, et veillez à protéger ces fichiers des autres utilisateurs "chmod". Si les mots de passe sont vraiment importants, ne les laissez pas non plus dans ces fichiers - éditez les fichiers et supprimez-les une fois que Wget a démarré le téléchargement.
Vous pouvez fournir des informations d'authentification via --user=USERNAMEet --password=PASSWORD; sur la base de man wget, la commande peut être remplacée à l'aide de --http-user=USERNAMEet --http-password=PASSWORDpour la connexion http et de --ftp-use=USERNAMEet --ftp-password=PASSWORDpour la connexion ftp .
La commande aurait pu utiliser --http-useret à la --http-passwordplace de --useret --password. En cas de ftpdemande, les options sont --ftp-useret --ftp-password.
Ce n'est pas tout à fait correct: man wgetindique que --user et --password sont des options valides, qui peuvent être remplacées par --http-user ou --ftp-password
wget
A la place, les options de ligne de commande sont séparées pour celles-ci, aussi analyse-t-il probablement naïvement la chaîne après le:
comme numéro de port.Réponses:
Wget interprète
<pass>@serveraddress
comme un port. Pour spécifier un nom d'utilisateur et un mot de passe, utilisez les commutateurs--user
et--password
:De
man wget
:la source
--ask-password
option décrite dans la réponse de Nabil Kadimi. Il vous fait entrer le mot de passe de manière invisible sur une autre ligne et évite de le stocker dans l'historique de votre shell.http://user:password@host/path
" "- manuelVous avez 3 options et ici il n'y a pas d'ordre spécifique autre que le courage de sentir:
1 / Le mot de passe est visible par tout le monde (en utilisant la commande
history
)Le mot de passe sera également visible dans ps, top, htop et similaire.
2 / Le mot de passe est visible pour tous ceux qui cherchent derrière vos épaules
Remarquez l'espace blanc avant la commande, cela empêche de l'enregistrer dans votre historique.
Le mot de passe sera également visible dans ps, top, htop et similaire.
3 / Le mot de passe n'est visible par personne, y compris vous
la source
--ask-password
n'est pas disponible ou si vous ne voulez pas taper le mot de passe à chaque fois,wget -i link.txt
peut vous aider, oùlink.txt
contientftp://remote_user:[email protected]/file.ext
Vous pouvez également stocker le nom d'utilisateur et le mot de passe dans le fichier
~/.wgetrc
et modifier les autorisations de ce fichier afin que seul votre utilisateur puisse le lire:Fichier
~/.wgetrc
:... puis
Notez cependant que cet utilisateur
root
peut toujours consulter ce fichier et lire le mot de passe.De la page de manuel :
la source
Vous pouvez fournir des informations d'authentification via
--user=USERNAME
et--password=PASSWORD
; sur la base deman wget
, la commande peut être remplacée à l'aide de--http-user=USERNAME
et--http-password=PASSWORD
pour la connexion http et de--ftp-use=USERNAME
et--ftp-password=PASSWORD
pour la connexion ftp .la source
La commande aurait pu utiliser
--http-user
et à la--http-password
place de--user
et--password
. En cas deftp
demande, les options sont--ftp-user
et--ftp-password
.la source
man wget
indique que --user et --password sont des options valides, qui peuvent être remplacées par --http-user ou --ftp-password