O usuário pode excluir arquivos de propriedade da raiz em seu diretório pessoal ou Quais são as regras que controlam a alteração de arquivos dentro de diretórios graváveis pelo usuário?

0

Tente este código

root /home/user $ touch hehehe

depois como usuário normal

user ~ $ rm -f hehehe

Nosso usuário pode remover um arquivo de propriedade da raiz dentro de seu diretório pessoal. Isso funciona não apenas em seu diretório inicial, mas dentro de qualquer diretório gravável por eles.

Agora tente

root /home/user $ mkdir -p testdir

e

user ~ $ rm -rf testdir

Funciona também. No entanto:

root /home/user $ mkdir -p testdir/childdir
user ~ $ rm -rf testdir/childdir

falha, portanto nosso usuário aparentemente não pode excluir diretórios não-graváveis não vazios dentro de diretórios graváveis.

Pelo meu entendimento, todos os três casos de teste devem ter falhado. Mas, aparentemente, quando um diretório é gravável, isso dá ao usuário alguns recursos não triviais em relação ao seu conteúdo.

Quais são as regras exatas sobre quais das operações primitivas do sistema de arquivos ( create , delete , etc.) 'podem ser executadas em relação às permissões do sistema de arquivos que um usuário possui?

    
por jcarpenter2 06.07.2018 / 09:36

1 resposta

3

As respostas ficam muito claras, uma vez que você entende que, em todos os sistemas de arquivos compatíveis com UNIX, um arquivo é não algo que vive dentro de um diretório, mas algo completamente independente. Um diretório nada mais é que uma coleção de links para arquivos (isto é, porque o syscall para remover um arquivo de um diretório é unlink() ). Quando não há links para um arquivo (o refcount é zero), o arquivo em si morre.

Isso tem algumas implicações:

  • Um e o mesmo arquivo pode perfeitamente existir em mais de um diretório em um sistema de arquivos
  • Sua pergunta : Excluir um arquivo (ou um subdiretório) de um diretório (removendo um link para ele) ou criar um link para ele não é uma operação no arquivo, mas no diretório. Isto implica, que as permissões do arquivo são irrelevantes, são as permissões do diretório, que contam.
por 06.07.2018 / 09:48