Linux - não é possível remover o arquivo de propriedade com 777 permissões

25

Tenho alguns arquivos que não consigo remover usando o comando rf -Rf . Sou o proprietário desses arquivos e o grupo atribuído a esses arquivos também é um grupo em que meu usuário está. O que é ainda mais estranho é que eu posso editar o conteúdo deles e posso alterar as permissões deles, mas não consigo me mover ou exclua-os.

ls -al
total 12
dr-xr-xr-x 3 rayell pg1083760 4096 2010-10-10 10:00 .
drwxr-xr-x 3 rayell pg1083760 4096 2011-09-02 04:33 ..
-rwxrwxrwx 1 rayell pg1083760    0 2011-09-02 06:38 default.settings.php
drwxrwxrwx 2 rayell pg1083760 4096 2011-09-02 04:33 files
-rwxrwxrwx 1 rayell pg1083760    0 2011-09-02 06:38 settings.php


rm -Rf *
rm: cannot remove 'default.settings.php': Permission denied
rm: cannot remove directory 'files': Permission denied
rm: cannot remove 'settings.php': Permission denied

Alguém pode me dizer o que está acontecendo?

    
por RaYell 02.09.2011 / 15:45

4 respostas

57

Para remover um arquivo, você precisa ter permissão de escrita no diretório que contém este arquivo.

Aqui as permissões são dr-xr-xr-x 3 rayell pg1083760 4096 2010-10-10 10:00 . Então ninguém (diferente de root ) pode remover arquivos dentro deste diretório. O proprietário deve usar chmod primeiro.

-
1. Existem boas razões para isso. Ao "remover" um arquivo com rm , você está realmente tentando desvinculá-lo do diretório (as cópias com link físico não serão excluídas).

    
por 02.09.2011 / 15:50
1

Outra possível pergunta é o atributo

lsattr file

Este comando mostrará o atributo do arquivo e um arquivo com o atributo 'i' não pode ser modificado (e ser excluído)

, verifique o atributo do seu arquivo e remova o atributo "i" se o atributo estiver definido

chattr -i file
    
por 14.04.2016 / 09:22
0

A razão é que o diretório pai tem chmod 705 ou algo parecido. Você pode chmod do diretório pai com o seguinte comando:

chmod -R 777 directory_name

Depois disso, você pode remover esse diretório e os arquivos que ele contém.

    
por 09.03.2012 / 16:22
0

Eu tive o mesmo problema e chmod sozinho não fez o truque. Primeiro tive que alterar o proprietário (usuário e grupo) dos arquivos que eu queria remover.

sudo chown -hR root:admin dir_to_delete

Explicação:

  • sudo : verifique se você possui os direitos adequados
  • chown : comando do Linux para alterar o proprietário de um arquivo
  • -hR : altere o proprietário do diretório e todos os subdiretórios. Eu encontrei aqui .
  • root : nome do novo usuário
  • admin : nome do novo grupo

Eu já mudei os modificadores para 777; Não sei se isso foi necessário ou não.

    
por 30.04.2015 / 14:52