como apagar arquivos de uma data e extensão específicas

0

Curto e doce: uma das minhas assinaturas de hospedagem foi invadida.

Eu executei este comando: find path-to-folder / -mtime -7 -name "* .php" –print Isso produziu cerca de 11 páginas de código malicioso que foi adicionado em 30 de janeiro. Eu não quero excluir individualmente todos esses itens, mas sim criar um script ou criar um comando para executar a tarefa de exclusão uma vez.

Gostaria de realizar um dos seguintes procedimentos:

  1. crie um script que excluirá arquivos com base nos caminhos que eu insiro em um arquivo .txt vinculado - OU
  2. um único comando para excluir todos os arquivos com um nome-* ".php" de uma determinada pasta com base em um período específico? Tipo de ajustar o comando de cima - se isso for possível ??.
por nak_attack 01.02.2015 / 03:25

2 respostas

2

  1. a resposta de Poisson Aerohead é basicamente boa, com uma pequena modificação é melhor usar NULL como filename delimetre.

  2. para fazer isso em um comando, apenas mudamos o -print para o -delete . Cuidado, o switch -delete tem que ser o último switch, ou os arquivos serão deletados antes que eles sejam checados com outros switches restantes.

    localize caminho-para-pasta / -mtime -7 -name "* .php" –delete

por 01.02.2015 / 03:52
1

Também curto e doce: cat list | xargs rm

Isso pressupõe que você tenha um arquivo chamado 'list' de todos os arquivos .php maliciosos e que você esteja no diretório que contém os arquivos .php (só para ficar claro, mas aposto que você já entendeu isso).

Se qualquer um dos nomes de arquivo contiver novas linhas, isso será perigoso executar , particularmente porque você já sabe que eles foram criados por um adversário mal-intencionado. Se você tiver a lista de nomes de arquivos em um arquivo de texto, poderá verificar a lista antecipadamente e certificar-se de que nenhuma das linhas excluirá arquivos que você deseja preservar.

Além disso, se o invasor conseguiu obter scripts php maliciosos nesse host, isso pode não ser o seu maior problema . Estou apenas respondendo a pergunta que você fez, e @soubunmei deu uma resposta melhor porque ela sabia um pouco mais sobre o comando find do que eu, mas nenhuma das respostas garante segurança . Desculpe se isso não foi claro e obrigado a @soubunmei e @MichaelHomer por apontar minha linguagem descuidada. Você deve conversar com um profissional de segurança cibernética se acreditar que alguém mal-intencionado pode ter obtido privilégios elevados no host.

Pessoalmente, suspeito que existe uma boa forma de "extensão e data" para fazer isso, como você pediu, que algumas pessoas podem achar mais elegante, mas como você já tem a lista, por que não usá-la?

Eu testei isso em um arquivo chamado 'list' que continha as linhas:

file1
file2

e esses arquivos estavam no meu desktop. Funcionou como esperado. Eu recomendo strongmente que você teste isso em um pequeno estágio primeiro para ver como ele se comportará, e também faça o backup do diretório antes de qualquer remoção de arquivo em massa. O espaço no disco rígido é muito mais barato que o tempo dos programadores!

    
por 01.02.2015 / 03:38