Eu não acho que você possa usar o usuário de forma confiável: sintaxe pass @ name; wgetpossui opções de linha de comando separadas para elas, portanto, provavelmente está analisando ingenuamente a sequência após o :número da porta.
Geekosaur
Respostas:
198
O Wget interpreta <pass>@serveraddresscomo porta. Para especificar um nome de usuário e senha, use as opções --usere --password:
wget --user user --password pass http://example.com/
Especifique o nome de usuário do usuário e senha senha para ambos FTP e recuperação de arquivos HTTP. Esses parâmetros podem ser substituídos usando as
opções --ftp-usere --ftp-passwordpara conexões FTP e as opções --http-usere --http-passwordpara conexões HTTP.
Prefiro a --ask-passwordopção descrita pela resposta de Nabil Kadimi. Você digita a senha invisivelmente em outra linha e evita armazená-la no seu histórico de shell.
Kevin
8
@ Kevin Você pode evitar armazená-lo no histórico do shell iniciando a linha com pelo menos um espaço (como mostrado por Nabil ). Se a senha / recurso for sensível, você deve se preocupar mais com a conexão HTTP / FTP / criptografada / não criptografada do que com o armazenamento no disco.
Lekensteyn
Concordo que o problema da senha não criptografada seja mais importante em alguns casos do que o histórico do shell, mas a resposta também é útil para protocolos seguros. Além disso, às vezes você precisa se preocupar mais com espiões que têm acesso ao seu computador do que com espiões on-line (que não estão interessados no conteúdo que você está acessando ou pelo qual não se importa). A resposta --ask-password abaixo é claramente melhor para uso interativo, enquanto a resposta --password aqui é mais fácil para automação. O comentário de Ixgr sobre .wgetrc e chmod também é interessante em alguns casos.
youen 17/07
Pelo que entendi o manual, o passe não é interpretado como porta. "Você também pode codificar seu nome de usuário e senha em um URL: http://user:password@host/path" "- manual
Tim
104
Você tem três opções e aqui não há nenhuma ordem específica além da sensação de coragem:
1 / Senha é visível para qualquer pessoa (usando o comando history)
Embora não seja visível no histórico, é visível para todos os que conduzem um comando ps, top, htop ou similar enquanto o processo está em execução.
4
@AbdennourTOUMI Por que você desabilitou as verificações de certificado, especialmente se estiver enviando uma senha com a solicitação? Definitivamente, isso não é aconselhável em geral. No que diz respeito a "ocultar" a senha nos logs ou / proc, a página de manual do wget oferece uma opção adicional: "Para impedir que as senhas sejam vistas, armazene-as em .wgetrc ou .netrc e certifique-se de proteger esses arquivos contra outros usuários com "chmod". "
Lxgr #
2
Se --ask-passwordnão está disponível ou você não deseja digitar a senha toda vez, wget -i link.txtpode ajudar, onde link.txtcontémftp://remote_user:[email protected]/file.ext
tehnicaorg
3
Você também pode armazenar o nome de usuário e a senha no arquivo ~/.wgetrc
e alterar as permissões desse arquivo para que somente seu usuário possa lê-lo:
Arquivo ~/.wgetrc:
user=john
password=SEcrEt
... e depois
chmod 600 ~/.wgetrc
Observe, no entanto, que o usuário rootainda pode espiar o arquivo e ler a senha.
Para impedir que as senhas sejam vistas, use-as --use-askpassou armazene-as em .wgetrcou .netrce certifique-se de proteger esses arquivos de outros usuários "chmod". Se as senhas forem realmente importantes, também não as deixe nos arquivos --- edite os arquivos e exclua-os após o início do download do Wget.
Você pode fornecer credencial de autenticação via --user=USERNAMEe --password=PASSWORD; baseado no man wget, o comando pode ser substituído usando o --http-user=USERNAMEe --http-password=PASSWORDpara http conexão eo --ftp-use=USERNAMEe --ftp-password=PASSWORDpara ftp conexão.
O comando poderia ter usado --http-usere em --http-passwordvez de --usere --password. Em caso de ftpsolicitação, as opções são --ftp-usere --ftp-password.
Isso não é inteiramente correto: man wgetindica que --user e --password são opções válidas, que podem ser substituídas por --http pelo usuário ou --ftp por senha
wget
possui opções de linha de comando separadas para elas, portanto, provavelmente está analisando ingenuamente a sequência após o:
número da porta.Respostas:
O Wget interpreta
<pass>@serveraddress
como porta. Para especificar um nome de usuário e senha, use as opções--user
e--password
:De
man wget
:fonte
--ask-password
opção descrita pela resposta de Nabil Kadimi. Você digita a senha invisivelmente em outra linha e evita armazená-la no seu histórico de shell.http://user:password@host/path
" "- manualVocê tem três opções e aqui não há nenhuma ordem específica além da sensação de coragem:
1 / Senha é visível para qualquer pessoa (usando o comando
history
)A senha também estará visível em ps, top, htop e similares.
2 / Senha é visível para quem olha atrás dos seus ombros
Observe o espaço em branco antes do comando, pois evita salvá-lo no seu histórico.
A senha também estará visível em ps, top, htop e similares.
3 / A senha não está visível para ninguém, incluindo você
fonte
--ask-password
não está disponível ou você não deseja digitar a senha toda vez,wget -i link.txt
pode ajudar, ondelink.txt
contémftp://remote_user:[email protected]/file.ext
Você também pode armazenar o nome de usuário e a senha no arquivo
~/.wgetrc
e alterar as permissões desse arquivo para que somente seu usuário possa lê-lo:Arquivo
~/.wgetrc
:... e depois
Observe, no entanto, que o usuário
root
ainda pode espiar o arquivo e ler a senha.Na página de manual :
fonte
Você pode fornecer credencial de autenticação via
--user=USERNAME
e--password=PASSWORD
; baseado noman wget
, o comando pode ser substituído usando o--http-user=USERNAME
e--http-password=PASSWORD
para http conexão eo--ftp-use=USERNAME
e--ftp-password=PASSWORD
para ftp conexão.fonte
O comando poderia ter usado
--http-user
e em--http-password
vez de--user
e--password
. Em caso deftp
solicitação, as opções são--ftp-user
e--ftp-password
.fonte
man wget
indica que --user e --password são opções válidas, que podem ser substituídas por --http pelo usuário ou --ftp por senha