Se houver um diretório não vazio no qual você não tem permissão de gravação, não será possível remover seu conteúdo.
$ mkdir foo
$ touch foo/bar
$ chmod a-w foo
$ rm -rf foo
rm: cannot remove 'foo/bar': Permission denied
O motivo é que rm
está vinculado a permissões como qualquer outro comando e a permissão para remover bar
requer permissão de gravação em foo
. Isso não se aplica quando você executa rm
como root porque o root sempre tem permissão para remover um arquivo.
Para tornar a árvore de diretórios deletável, torne todos os diretórios graváveis (as permissões de arquivos regulares não importam quando se trata de exclusão com rm -f
). Você pode usar um desses comandos:
chmod -R u+w here # slow if you have a lot of regular files
find here -type d -exec chmod u+w {} +