Qual é o comportamento de mv on /?

0

Um dos nossos usuários executou acidentalmente mv /* ../ sem permissão de root. Depois de verificar os efeitos usando diff , fiquei surpreso ao descobrir que mv aparentemente funcionava como cp quando aplicado ao / dir.

Então, minhas perguntas são:

  1. Este comportamento padrão é para o comando mv ?
  2. Há mais alguma coisa que eu deveria verificar para ter certeza de que nenhum dano foi feito ao sistema?
por doliv071 03.07.2017 / 17:46

1 resposta

3

Eu acho que o destino ( ../ ) estava em algum lugar dentro de /home/ ou outro ponto de montagem onde o sistema de arquivos diferente de / estava montado.

  1. Is this standard behavior for the mv command?

Sim. Se um arquivo for movido entre sistemas de arquivos, ele será copiado, a origem será excluída e a propriedade da cópia será ajustada para espelhar a origem. Eu acho que este foi o caso, mas a parte "delete" lançou erros "permissão negada" e nada foi excluído (ou quase nada, eu vou voltar a ele em um tempo).

Se a movimentação ocorrer em um único sistema de arquivos, mv tentará atualizar entradas de diretório sem copiar. Quando um usuário comum tenta mover algo para algum lugar dentro do sistema de arquivos raiz, o processo geralmente atinge "permissão negada" e nada acontece. Mas, neste caso, o sistema de arquivos de destino era diferente, conforme descrito acima. No entanto, mv em algum momento tentou mover o ponto de montagem /home/ (ou outro) dentro do seu sistema de arquivos, para dentro da árvore onde ../ estava. Esta ação é obviamente impossível, você não pode mover o diretório para seu subdiretório. Dessa forma, os arquivos do usuário no mesmo sistema de arquivos como ../ foram deixados intactos, apesar do fato de ele poder movê-los para ../ um por um.

O único perigo em que posso pensar é o seguinte cenário: se o usuário puder excluir quaisquer arquivos e / ou diretórios em um sistema de arquivos outro do que onde ../ foi, mv agiria como cp e, em seguida, os arquivos de origem e / ou diretórios seriam excluídos . Você deve verificar se isso poderia acontecer e quão grave era. Nesse caso, alguns arquivos podem ter que ser movidos de volta. Isso não deve acontecer se o usuário for um usuário totalmente normal. O usuário pode ter removido alguns arquivos de /tmp/ , mas provavelmente não é nada sério.

  1. Is there anything else I should check to make sure no damage was done to the system?

Eu não penso assim. Se o sistema estiver configurado corretamente, um usuário comum não poderá fazer nada para prejudicá-lo. Bem, neste caso, o sistema de arquivos de destino pode estar cheio devido a esses arquivos copiados inesperadamente, mas é isso. Depois de lidar com o cenário perigoso descrito acima, remova a cópia e seu sistema deve ficar bem.

Eu faria toda a limpeza como o usuário, não como root, mesmo que alguém tenha que fazer isso (como sudo -u user rm something ). O objetivo é evitar danos ao sistema em caso de outro erro.

    
por 03.07.2017 / 20:04