O código está incorreto. Está faltando uma aspa de fechamento no final do loop for e pode ser prejudicial. Deixe-me explicar como.
O comando alias
é um boletim da shell. Como o nome indica, ele irá alias uma única palavra para outro comando. Isso em si não é malicioso ou prejudicial. Na maioria dos casos, é muito útil, especialmente quando você precisa executar regularmente um comando muito longo com vários sinalizadores e argumentos.
O que torna esse comando potencialmente prejudicial é uma combinação de duas coisas diferentes.
- Os aliases sobrescreverão os comandos existentes. Eu forneci um exemplo abaixo:
-bash-3.2$ type ls ls is hashed (/bin/ls) -bash-3.2$ ls file file1 file2 -bash-3.2$ alias ls="echo this is a test" -bash-3.2$ ls this is a test -bash-3.2$
- Quando esse comando
alias
for executado corretamente, ele sobrescreverá o comandols
com um loop for que, quando executado, substituirá o primeiro no primeiro disco rígido reconhecido por dados pseudo-aleatórios e continuará no próximo. .
Para tentar entender como funciona esse loop, ele começa procurando por blocos de dispositivos em / dev que correspondam à expansão curinga *da*
. As unidades IDE usam o prefixo h
e as unidades SATA usam o prefixo s
. Na maioria dos computadores modernos com um disco rígido, o bloco do dispositivo para esse disco rígido seria /dev/sda
.
A partir daí, partições individuais são sufixadas com o número (por exemplo, sda1
, sda2
e assim por diante). Quando um bloco de dispositivo é correspondido, o valor de $ i conterá o caminho para ele. Em seguida, ele executará o comando cat /dev/urandom &> ${i} &
, que executará cat /dev/urandom
, em segundo plano, e enviará todos os dados para o valor de $ {i}, substituindo efetivamente o bloco do dispositivo por dados pseudo-aleatórios.
Quando a primeira partição for preenchida, o comando cat
será finalizado e o loop for será executado novamente, verifique o próximo dispositivo de blocos correspondente, sobrescreva-o com dados pseudo-aleatórios e prossiga para o próximo até que não haja mais dispositivos de bloco correspondentes.
Para ser claro, isso não é prejudicial por si só. Depois de executar este comando alias
, você teria que executar ls
(como root - isso não funcionará se você não for root porque não pode gravar dados em blocos de dispositivos como qualquer outro usuário) para este para fazer qualquer dano.
Uma boa maneira de visualizar como isso pode ser perigoso é executando bash -x
. Quando um shell é inicializado, um monte de arquivos de configuração específicos do sistema e do usuário é executado. Para o bash, os comuns são /etc/bash_profile
e ~/.bash_profile
. Geralmente, um desses arquivos também possui uma instrução if para verificar ~/.bashrc
e a origem, se existir. Como isso só funcionará se ls
for executado como root, o comando alias
deve ser executado como root primeiro. Para alguém adicionar isso a qualquer um desses arquivos, eles teriam que de alguma forma obter acesso root primeiro.
Ao terminar, quero salientar que essa é uma preocupação irreal e seria muito difícil para alguém conseguir um computador para o qual não tenha acesso root. Também há comandos menos envolvidos, igualmente mal-intencionados, que não exigem acesso root a um sistema para execução.