Como deletar esse diretório?

3

Eu tenho um diretório que não posso excluir com rmdir . Eu recebo sempre um erro permission denied . Mas quando listar o diretório (com ls -l ) eu recebo isso:

drwxrwxrwx  2 user user 4096 Aug 28 09:34 directory

stat me dá isso:

  File: 'directory/'
  Size: 4096            Blocks: 16         IO Block: 32768  directory
Device: 12h/18d Inode: 102368771   Links: 2
Access: (0777/drwxrwxrwx)  Uid: ( 1000/  user)   Gid: ( 1000/  user)
Access: 2015-08-31 03:00:20.630000002 +0200
Modify: 2015-08-28 09:34:16.772930001 +0200
Change: 2015-08-31 12:25:04.920000000 +0200

Então, como excluir esse diretório.

    
por kristian 31.08.2015 / 12:34

3 respostas

5

Se você estiver tentando excluir um diretório foo/bar/ , as permissões de bar não serão o fator relevante. Remover o nome bar do diretório foo é uma modificação de foo . Então você precisa escrever permissões em foo .

No seu caso, verifique as permissões do diretório atual com ls -ld .

Você pode encontrar esta resposta a "por que é permitido rm excluir um arquivo sob a propriedade de um usuário diferente?" esclarecedor.

    
por 31.08.2015 / 12:56
1

Outra possibilidade é que o "bit imutável" seja definido neste diretório. Você pode verificar com ls -d <directory> . As permissões definidas com chattr não serão exibidas na stat output:

stephan@x230 ~ % stat testdir
  File: ‘testdir’
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 801h/2049d  Inode: 13713629    Links: 2
Access: (0755/drwxr-xr-x)  Uid: ( 1000/ stephan)   Gid: ( 1000/ stephan)
Access: 2015-08-31 14:05:49.957299346 +0200
Modify: 2015-08-31 14:05:25.657267292 +0200
Change: 2015-08-31 14:05:42.685289494 +0200
 Birth: -


stephan@x230 ~ % lsattr -d testdir
----i--------e-- testdir'

Você tem que ser root para remover o bit imutável: chattr -i testdir

    
por 31.08.2015 / 14:31
1

Dentro desse dir deve ser um arquivo sem as permissões necessárias. Tente alterar o proprietário recursively para todo o dir e, em seguida, remova-o.

$ sudo chown -R user:user dir/
$ rm -rf dir/

De man rm

-r, -R, --recursive
  remove directories and their contents recursively
-f, --force
          ignore nonexistent files, never prompt
    
por 31.08.2015 / 17:06