Como faço para remover um arquivo sem permissões?

22

Um hacker soltou um arquivo no meu diretório tmp que está causando problemas. Nada malicioso, exceto a criação de GBs de entradas error_log porque seu script está falhando. No entanto, o arquivo que eles estão usando para executar não tem permissões e, mesmo sendo ROOT, não posso excluir ou renomear esse arquivo.

----------  1 wwwusr wwwusr 1561 Jan 19 02:31 zzzzx.php

root@servername [/home/wwwusr/public_html/tmp]# rm zzzzx.php
rm: remove write-protected regular file './zzzzx.php'? y
rm: cannot remove './zzzzx.php': Operation not permitted

Eu também tentei remover por inode

root@servername [/home/wwwusr/public_html/tmp]# ls -il

...
1969900 ----------  1 wwwusr wwwusr 1561 Jan 19 02:31 zzzzx.php

root@servername [/home/wwwusr/public_html/tmp]# find . -inum 1969900 -exec rm -i {} \;

rm: remove write-protected regular file './zzzzx.php'? y
rm: cannot remove './zzzzx.php': Operation not permitted

Como faço para excluir este arquivo?

Bradley
fonte
15
Se eu fosse você, eu estaria procurando armas nucleares e pavimentar essa caixa. Claramente, há pelo menos uma falha de segurança, que é ruim o suficiente para alguém poder escrever novos arquivos com permissões personalizadas fora da raiz do documento e, além disso, conseguir que o PHP / Apache tente carregá-lo. Meu amigo, você é real. Se você quer a caixa de volta, precisa retirá-la da órbita. É a única maneira de ter certeza .
Warren Young
Obrigado Warren. Na verdade, essa é uma nova caixa movendo-se sobre contas que nunca foram comprometidas antes. Estou tentando descobrir quais são as configurações diferentes (ambas as caixas do CPanel).
Bradley
2
Só porque o sistema operacional é recente e a instalação nova não significa que você não pode ter um compromisso. Um bug detectado hoje em um sistema operacional lançado há 6 meses pode persistir por anos, pois as pessoas continuam instalando o sistema operacional mais antigo a partir de CDs que estão envelhecendo continuamente. Mesmo se houver um patch para a falha, a janela entre instalação e atualização permite o comprometimento. Deixando isso de lado, se eu estiver errado que algum ator ruim tenha colocado esse arquivo no seu sistema, um administrador de sistemas consciente teria que pelo menos tentar explicar sua presença de outra maneira.
Warren Young

Respostas:

26

O arquivo provavelmente foi bloqueado usando atributos de arquivo .

Como root, faça

lsattr zzzzx.php

Atributos a(modo de acréscimo) ou i(imutáveis) presentes impediriam o seu rm. Se eles estão lá, então

chattr -ai zzzzx.php
rm zzzzx.php

deve excluir seu arquivo.

ire_and_curses
fonte
Eu evitaria chamá-los de atributos de arquivo estendidos , pois isso poderia causar confusão com os atributos de arquivo estendidos, definidos setfxattre usados ​​para armazenar atributos ACL ou SELinux ....
Stéphane Chazelas
@Stephane Chazelas - ok. Os 'atributos de arquivo' simples funcionam para você?
precisa saber é o seguinte
1
Não consigo pensar em nada melhor. Eles costumavam ser atributos de arquivo ext2, mas agora são suportados por outros FS no Linux, como xfs of btrfs, portanto, não é mais possível chamá-los assim.
Stéphane Chazelas
3

Infelizmente Warren não postou como resposta, mas como um comentário; Não posso enfatizar o suficiente para que ele esteja totalmente correto.

Remover / alterar um arquivo não resolverá o seu problema REAL; fará UM sintoma desaparecer. Coloque a caixa off-line, tire uma imagem para análise forense posterior e reinstale-a com uma versão mais nova (espero que com novas correções de segurança) do que você estava executando.

Repito: excluir o arquivo NÃO É UM CORRETO .

consertar
fonte
7
Não postei uma resposta porque meu comentário não responde à pergunta.
Warren Young
Heh ... Acho que ainda sou novo demais na maneira de fazer pilha de troca. Eu prefiro descer votou "não respondendo" do que não dizer o que precisa ser dito; D
tink
A questão não é sobre a correção desse problema, é sobre a remoção de um arquivo sem permissões. E é uma pergunta interessante!
Wim
5
@tink: Isso é o que os comentários são para : para dizer coisas que precisam ser ditas, que são não responde à pergunta.
Warren Young
Obviamente, isso faz responder à pergunta que foi feita. Limpar o disco removerá o arquivo! Normalmente, não é um método razoável de remover um arquivo, mas, nesse caso, é a maneira mais razoável, porque resolve o problema subjacente ao mesmo tempo. (Além disso, mesmo se isso não literalmente responder à pergunta como foi explicitamente solicitado - o que ele faz - não é errado para postar uma solução para de uma OP problema real .)
Elias Kagan