As permissões do diretório contendo determinam a capacidade de renomear e excluir arquivos.
Especificamente, para excluir / renomear um arquivo, o usuário precisa ter as permissões write e executar (ou seja, traversal) no diretório que o contém, e o arquivo em questão deve não ser imutável . (Sob essas circunstâncias, um usuário não privilegiado pode até excluir arquivos de propriedade do root).
Exclusão restrita:
É possível restringir a exclusão de arquivos apenas ao proprietário dos arquivos (e usuários privilegiados), definindo o 'sticky bit' (também conhecido como 'flag de exclusão restrita') no diretório contido usando: chmod +t directory
. Um diretório com o conjunto de bits pegajosos exibe um 't' na última posição (por exemplo, drwxr-xr-t
) - isso também pode ser definido no formato 'octal' prefixando o código octal de 3 dígitos com '1' (por exemplo, chmod 1755 directory
). (O Linux ignora o bit pegajoso nos arquivos - embora alguns outros sistemas operacionais atribuam significado a ele.)
Permissões de leitura:
Você deve observar que a permissão de leitura no diretório contido não é necessária. Sem ele, você ainda poderá excluir o arquivo, se souber o nome dele, embora não seja possível "ler" o conteúdo do diretório (por exemplo, sem permissões de leitura, não pode executar ls
).
Arquivos imutáveis:
Como um ponto secundário, tornando um arquivo imutável (ou seja, chattr +i
) nem o proprietário nem outros usuários (incluindo usuários privilegiados) poderão excluir (ou renomear, vincular ou modificar) o arquivo, mesmo que eles têm permissões de gravação no diretório (somente o superusuário pode remover isso).