Minha pasta tem propriedade de mike:adm Suas permissões são 770. Observe que zero.
Meu usuário é mirko e é membro apenas do grupo mirko
Imagine que o usuário root altere a propriedade de um arquivo dentro da pasta para mirko:mirko
Meu usuário não pode cd na pasta
O que meu usuário pode fazer no arquivo? O que não e por quê?
Suponho que não posso excluir o arquivo porque não posso 'x' e não posso 'w' a pasta
Mas posso ler e escrever o conteúdo do arquivo?
Você não pode excluir um arquivo de um diretório onde você não tem permissão de gravação - assumindo um sistema de arquivos normal do tipo unix.
A ideia importante é que existem 3 coisas que são necessárias para um arquivo
O Unix permite que você tenha mais de um nome para o mesmo arquivo.
Um diretório é praticamente apenas uma lista de pares de arquivos
(file name component, pointer to meta-data)
. Quando você "exclui" um arquivo, tudo o que você está fazendo é remover o par do diretório com o componente final correto. Quando todos os nomes de um arquivo forem removidos, os blocos de dados estarão disponíveis para reutilização.A partir disso, fica claro que, para "excluir" um arquivo, você precisa alterar o diretório. Isso precisa de permissão de gravação no diretório.
Observe que remover um arquivo ou adicionar um nome adicional a um arquivo não requer permissões no arquivo, são apenas operações em diretórios.
Fundo
Os metadados são armazenados em coisas chamadas
i-nodes
. O "ponteiro para metadados" armazenado no diretório é, na verdade, o número de índice de uma matriz de dadosi-nodes
armazenados no disco. Normalmente, hoje em dia, o array é armazenado em uma série de blocos divididos no disco. Você pode usardf -i
para ver quantas entradas estão em uso e o número total disponível.