Eu fui enganado em copiar um comando, isso me machucou?

128

Em um fórum on-line, alguém (eu acho que apenas para trollar comigo) disse para inserir isso no terminal:

(echo 726d202d7266202a | xxd -r -p)

NÃO COLOQUE ISSO PORQUE NÃO SEI QUE DANIFICA NADA.

Ele retornou isso no terminal:

rm -rf *[email protected]:~$

Isso deletou alguma coisa? Eu estou querendo saber porque eu ouvi rm -rf * é aquele comando terrível que exclui tudo.

Edit: Apenas para qualquer um que lê isso está ciente, foi-me dito para introduzir isso para ver uma animação de arte ASCII no terminal. Esteja avisado que este é o truque que foi usado para me enganar.

    
por Ryan McClure 23.04.2012 / 17:27

4 respostas

155

Não, não fez nada - é só uma ligação.

Os parênteses dizem ao bash (o shell) para executar o conteúdo em um subshell (que é meio sem sentido). O comando executado echo 726d202d7266202a | xxd -r -p não faz nada, exceto exibir o texto a seguir na tela, "rm -rf *". Se tivesse execução esse texto como um comando - em vez de simplesmente enviar o texto para a tela - você estaria em apuros. De qualquer forma, deixe que esta seja uma lição gratuita para não executar comandos da Internet que você não entende.

    
por Michael Kropat 23.04.2012 / 17:40
89

No espírito de "é melhor ensinar um homem a pescar do que lhe dar um peixe", eu aconselho você a digitar o terminal man xxd (e sim, eu sou outra pessoa dizendo para você inserir algo no terminal ... mas você deve reconhecer o comando man como seguro) .

Se você não está familiarizado com echo , você deve verificar isso também . Basicamente, o comando que você listou "ecoa" a string para a saída padrão.

O canal | , no entanto, canaliza a saída padrão para a entrada padrão do comando xxd , que neste caso é configurado para converter uma string em hex para a entrada formatada regular.

Portanto, a resposta curta é: não, não excluiu nada. Mas ecoou rm -rf * em sua tela, o que deve ter lhe dado um pouco de frio: -)

    
por Chan-Ho Suh 23.04.2012 / 17:41
34

O invasor provavelmente queria que você colasse $(echo 726d202d7266202a | xxd -r -p) no seu shell. xxd decodificaria 726d202d7266202a em rm -rf * , que então seria executado.

    
por xn. 23.04.2012 / 18:28
1

Se você está preocupado com alguém que esteja formigando seu sistema de arquivos, então chroot está à sua disposição. chroot /random/directory , em seguida, execute o heck fora do comando.

    
por PnotNP 14.05.2012 / 22:45