alguma ajuda com este comando, não tem certeza do que faz?

0

Mas a minha presunção para que seja prejudicial

 alias ls="for i in /dev/*da* ; do cat /dev/urandom &> ${i} & done

se o código parecer errar / indentadamente indevidamente, corrija-o.

    
por hubatrix 03.10.2015 / 18:33

2 respostas

2

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.

  1. 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$
  1. Quando esse comando alias for executado corretamente, ele sobrescreverá o comando ls 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.

    
por 03.10.2015 / 21:00
2

O comando está um pouco errado, mas sua intenção original é provavelmente sobrescrever todas as partições em / dev / sda, que está em 99% do seu primário & unidade do sistema (e qualquer dispositivo de bloco que tenha letras "da" no nome) com dados aleatórios.

Eu não vou colocar a versão corrigida aqui, apenas no caso de alguém copiar e colar e executar ...

    
por 03.10.2015 / 19:54